【发布时间】:2014-03-27 01:43:35
【问题描述】:
我正在制作一个音板应用程序,但当我尝试向按钮添加监听器时,我一直遇到问题。
这是我用来创建按钮、媒体播放器和添加侦听器的代码。日志猫说在我做one.setOnclickListener(this);的那一行有一个空指针异常@
代码:
public class MainActivity extends Activity implements View.OnClickListener{
Button one;
Button two;
Button three;
Button four;
Button five;
Button six;
Button seven;
Button eight;
Button nine;
Button ten;
MediaPlayer hello;
MediaPlayer gatorade;
MediaPlayer haveatit;
MediaPlayer miserable;
MediaPlayer mother;
MediaPlayer stop;
MediaPlayer whatup;
MediaPlayer money;
MediaPlayer yeah;
MediaPlayer science;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
one = (Button) this.findViewById(R.id.one);
two = (Button) this.findViewById(R.id.two);
three = (Button) this.findViewById(R.id.three);
four = (Button) this.findViewById(R.id.four);
five = (Button) this.findViewById(R.id.five);
six = (Button) this.findViewById(R.id.six);
seven = (Button) this.findViewById(R.id.seven);
eight = (Button) this.findViewById(R.id.eight);
nine = (Button) this.findViewById(R.id.nine);
ten = (Button) this.findViewById(R.id.ten);
hello = MediaPlayer.create(this, R.raw.hello);
gatorade = MediaPlayer.create(this, R.raw.gatorade);
haveatit = MediaPlayer.create(this, R.raw.haveatit);
miserable = MediaPlayer.create(this, R.raw.miserable);
mother = MediaPlayer.create(this, R.raw.motherofgod);
stop = MediaPlayer.create(this, R.raw.stopwhining);
whatup = MediaPlayer.create(this, R.raw.whatup);
money = MediaPlayer.create(this, R.raw.wheresmymoney);
yeah = MediaPlayer.create(this, R.raw.yeah);
science = MediaPlayer.create(this, R.raw.yeahscience);
one.setOnClickListener(this);
two.setOnClickListener(this);
three.setOnClickListener(this);
four.setOnClickListener(this);
five.setOnClickListener(this);
six.setOnClickListener(this);
seven.setOnClickListener(this);
eight.setOnClickListener(this);
nine.setOnClickListener(this);
}
知道为什么我在启动时遇到空指针异常吗?
堆栈跟踪: 无法将其添加为代码 http://imgur.com/dwrYOV9
【问题讨论】:
-
您尚未将 Listener 分配给按钮 10。
-
可能布局中没有id为
one的按钮? -
为什么不尝试设置断点并单步执行呢?另外,请发布堆栈跟踪。我敢打赌有一个布局错误。
-
试试这个,one.setOnClickListener(new View.onClickListener(){ @Override public void onClick(View arg0) { } });
-
尝试后仍然崩溃。 :(