我正在开发一个项目,我需要创建一些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并且一切正常,但是当我点击按钮时,没有任何反应。
答案 0 :(得分:0)
因为您要设置两次内容。
setContentView(R.layout.activity_main);
通话会使您的布局膨胀。
每当您第二次设置新副本时,
mButtonOne
和mButtonTwo
是第一个inflatted布局的实例,但您的当前视图是第二个inflatted布局。
简单地说你在屏幕上看到的按钮是不同的,因为它们属于第二种布局。因此,您点击了没有设置任何操作的按钮。
所以第二次删除setContentView(R.layout.activity_main);
。