【问题标题】:Android app crashing while adding listeners to buttons向按钮添加侦听器时Android应用程序崩溃
【发布时间】: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) { } });
  • 尝试后仍然崩溃。 :(

标签: android button listener


【解决方案1】:

已修复!

我取出监听器,并在 XML 文件中为每个按钮添加了android:onClick="playSound",并创建了十个方法来处理十种不同的声音!

谢谢你帮助我!

【讨论】:

    猜你喜欢
    • 2014-05-27
    • 2018-10-13
    • 2017-12-22
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    相关资源
    最近更新 更多