Android:findViewById(R.id.btn_mAmperClear).setOnClickListener

时间:2012-12-26 21:07:49

标签: android android-intent

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

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

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

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

        }
    });

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

致命的例外:主要 java.lang.RuntimeException:无法启动活动ComponentInfo {package.Name.ActivityName} java.lang.NullPointerException

其他3种情况很有效(上面的代码可以工作)。

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:3)

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

或者这是其中之一“Eclipse没有正确构建我的项目,因为知道依赖链并且它没有编译它应该是”错误的所有内容,这太愚蠢了。如果是这种情况,只需在项目上“清理”并从头开始重建。

答案 1 :(得分: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;
     }
}