Java 添加按钮会使应用程序崩溃
我试图在应用程序中添加一个简单的按钮,但出现以下错误: 尝试在空对象引用上调用虚拟方法“void android.widget.Button.setOnClickListener(android.view.view$OnClickListener)” 以下是我的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
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之后调用