-1

我一直致力于开发一个应用程序,一切进展顺利。但是,当我在我的一个 .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

4

4 回答 4

1

对于我的一个 .xml 文件(不是 main.xml)中的按钮,

它必须是您设置的布局setContentView(),以便findViewById()使用 usingthis或使用 an检索它inflater以获得Button声明的布局,并使用返回view的 with findViewById()

viewReturnedByInflater.findViewById()
于 2012-05-11T13:34:32.823 回答
0

您需要在将 OnClickListener 分配给按钮之前对其进行初始化。

于 2012-05-11T13:33:12.483 回答
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);
于 2012-05-11T13:35:24.453 回答
0

它会给您错误,因为当Button button3 = (Button)findViewById(R.id.button3); 它尝试查找按钮时,但由于该按钮位于另一个 xml 布局中,它会崩溃。

您应该使用其他布局或在主布局上添加按钮

于 2012-05-11T13:37:56.010 回答