我正在尝试向我的应用程序添加一个简单的按钮,但我收到以下错误:
尝试在空对象引用上调用虚方法'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" />
顺便说一句,这是我试图添加的第二个按钮。第一个工作正常。
答案 0 :(得分:0)
检查没有其他按钮或其他具有相同ID的元素。
答案 1 :(得分:0)
在你的代码中这样做:
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);
}
});
}
}
可能会有所帮助。
答案 2 :(得分:0)
这似乎是一个参考问题。可能存在多个具有相同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);
}