我的简单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种情况很有效(上面的代码可以工作)。
有人可以帮助我吗?
答案 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;
}
}