Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 添加按钮会使应用程序崩溃_Java_Android_Button_Runtime Error - Fatal编程技术网

Java 添加按钮会使应用程序崩溃

Java 添加按钮会使应用程序崩溃,java,android,button,runtime-error,Java,Android,Button,Runtime Error,我试图在应用程序中添加一个简单的按钮,但出现以下错误: 尝试在空对象引用上调用虚拟方法“void android.widget.Button.setOnClickListener(android.view.view$OnClickListener)” 以下是我的Java代码: final Button settings = (Button) findViewById(R.id.settings); settings.setOnClickListener(new View.OnClickListe

我试图在应用程序中添加一个简单的按钮,但出现以下错误:

尝试在空对象引用上调用虚拟方法“void android.widget.Button.setOnClickListener(android.view.view$OnClickListener)”

以下是我的Java代码:

final Button settings = (Button) findViewById(R.id.settings);
settings.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        Intent i = new Intent(getBaseContext(), Settings.class);
        startActivity(i);
    }
});
以下是我的XML:

<Button
    android:layout_width="35dp"
    android:layout_height="35dp"
    android:id="@+id/settings"
    android:src="@drawable/settings"
    android:background="@drawable/settings"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="true"
    android:layout_marginBottom="70dp"
    android:layout_marginRight="10dp" />


顺便说一下,这是我尝试添加的第二个按钮。第一个按钮工作正常。

检查是否没有其他按钮或具有相同id的其他元素。

只需在代码中执行以下操作:

class Abc{
Button settings;

   onCreate(..){

    ...
    setContentView(<your xml>);
    ...

    settings = (Button) findViewById(R.id.settings);
    settings.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent i = new Intent(getBaseContext(), Settings.class);
            startActivity(i);
        }
    });
   }
}
Abc类{
按钮设置;
onCreate(…){
...
setContentView();
...
设置=(按钮)findViewById(R.id.settings);
settings.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
Intent i=新的Intent(getBaseContext(),Settings.class);
星触觉(i);
}
});
}
}

这可能会有帮助。

这似乎是一个参考问题。可能存在多个具有相同ID的按钮

为了简化此操作,还可以在XML中为按钮设置
onClick
属性。代码如下:

XML:

<Button
    android:layout_width="35dp"
    android:layout_height="35dp"
    android:id="@+id/settings"
    android:src="@drawable/settings"
    android:background="@drawable/settings"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="true"
    android:layout_marginBottom="70dp"
    android:layout_marginRight="10dp"
    android:onClick="ButtonClick" />
public void ButtonClick(View v){
    Intent i = new Intent(getBaseContext(), Settings.class);
    startActivity(i);
}

你的findViewById找不到按钮。请提供代码,你在哪里膨胀你的布局,在哪里设置你的OnClickListener我想,可能会有一个答案:需要完整的代码,然后只有我们可以建议ans@babadaba我想问题是我不使用充气,你不需要充气,setContentView就可以了。第二个按钮与第一个按钮在同一个xml文件中是否有效?当然,findViewById必须在setContentView之后调用