1

我的简单 Android 应用程序中的 setOnClickListener 有一些问题。我的情况:

我有 4 个按钮的主屏幕按钮 1(工作)按钮 2(工作)按钮 2(EEeeeee...rror)按钮 4(尚未连接)

我已经将 2 个第一个按钮与新活动联系起来(一切都很好)。当我创建第三个按钮时,问题就开始了。我有代码:

findViewById(R.id.btn_mAmperClear).setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v){

        }
    });

使用清晰的类文件(上面没有代码的java文件)一切都很好 - 我没有错误,在我添加上面的代码之后我的应用程序崩溃了:(

致命异常:main java.lang.RuntimeException:无法启动活动 ComponentInfo{package.Name.ActivityName} java.lang.NullPointerException

其他 3 种情况效果很好(上面的代码有效)。

谁能帮助我?

4

2 回答 2

3

调用findViewById(R.id.btn_mAmperClear)返回 null。这意味着您实际上在活动的 layout.xml 中没有具有该 ID 的视图。

无论是那个还是这都是“Eclipse 没有正确构建我的项目,因为它太愚蠢而无法了解依赖链并且它没有编译它应该编译的所有内容”错误之一。如果是这种情况,只需对您的项目进行“清理”并从头开始重建它。

于 2012-12-27T13:54:54.490 回答
0

以这种方式这样做..

private Button btn1;
private Button btn2;
private Button btn3;
private Button btn4;

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

    btn1=(Button)findViewById(R.id.btn_1);
    btn2=(Button)findViewById(R.id.btn_2);
    btn3=(Button)findViewById(R.id.btn_3);
    btn4=(Button)findViewById(R.id.btn_4);

    btn1.setOnClickListener(this);
    btn2.setOnClickListener(this);
    btn3.setOnClickListener(this);
    btn4.setOnClickListener(this);
    }

public void onClick(View v) {
    // TODO Auto-generated method stub

    switch (v.getId()) {

    case R.id.btn_1:
                    //do your stuff
        break;
    case R.id.btn_2:
                    //do your stuff
        break;
    case R.id.btn_3:
                    //do your stuff
        break;
    case R.id.btn_4:
                    //do your stuff
        break;
     }
}
于 2012-12-27T14:34:00.387 回答