1

私はいくつかButtonの s を作成する必要があるプロジェクトに取り組んでおり、クリックするといくつかのトーンが再生されます。これは私が使用するコードです

package com.entrainment.www;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

Button mButtonOne;
Button mButtonTwo;
MediaPlayer mp;
MediaPlayer mp1; 


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mp=MediaPlayer.create(this, R.raw.tone_1);
    mp1=MediaPlayer.create(this, R.raw.tone_2);

    mButtonOne = (Button)findViewById(R.id.button1);
    mButtonTwo = (Button)findViewById(R.id.button2);
    mButtonOne.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v){
            mp.start();
        }
    }); 

    mButtonTwo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v){
            mp1.start();
        }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

AVD を実行して問題ありませんが、ボタンをクリックしても何も起こりません。

4

1 に答える 1

0

コンテンツを2回設定しているためです。

 setContentView(R.layout.activity_main);

call はレイアウトを膨らませます。

2回目に設定するたびに新しいコピーが作成されるので、

mButtonOnemButtonTwoは最初に膨張したレイアウトのインスタンスですが、現在のビューは 2 番目に膨張したレイアウトです。簡単に言うと、画面に表示されているボタンは、2 番目のレイアウトに属しているため異なります。したがって、アクションが設定されていないボタンをクリックしています。

というわけで、2回目は削除 setContentView(R.layout.activity_main);

于 2013-04-02T11:21:14.383 に答える