我一直在努力开发应用程序,一切都进展顺利。但是,当我在我的一个.xml文件(而不是main.xml)中为一个按钮添加了一个onCLickListener时,一旦我试图在模拟器中打开它,它就开始崩溃了。 onClickListener的所有代码与我拥有的其他两个按钮的代码相同。这是我有问题的听众的代码:
Button button3 = (Button)findViewById(R.id.button3);
button3.setOnClickListener(bt3listener);
private OnClickListener bt3listener = new OnClickListener(){
public void onClick(View v){
setContentView(R.layout.main);
}
};
任何此代码与我的其他onClickListeners不同的唯一方法是它引用与main.xml不同的文件中的按钮。它在显示任何ui之前崩溃,除了顶部有我的项目名称的黑色屏幕,并给我一个提示“un
答案 0 :(得分:1)
我的一个.xml文件(不是main.xml)中的按钮,
它必须是您使用setContentView()
设置的布局,以便使用findViewById()
使用this
检索它,或使用inflater
来获取布局其中声明了Button
,并将返回的view
与findViewById()
一起使用。
viewReturnedByInflater.findViewById()
答案 1 :(得分:0)
在将OnClickListener分配给按钮之前,需要初始化它。
答案 2 :(得分:0)
试试这个
private OnClickListener bt3listener = new OnClickListener(){
public void onClick(View v){
setContentView(R.layout.main);
}
};
Button button3 = (Button)findViewById(R.id.button3);
button3.setOnClickListener(bt3listener);
答案 3 :(得分:0)
它会给你错误,因为当Button button3 = (Button)findViewById(R.id.button3);
尝试找到按钮时,但由于按钮位于另一个xml布局中,它会崩溃。
您应该渗透其他布局或在主布局上添加按钮