public class Game_Screen extends ActionBarActivity {
ImageButton b1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start_menue);
ImageButton b1 = (ImageButton) findViewById((R.id.imbttn1));
}
public void test(View v){
v.setBackgroundResource(R.drawable.button_testbackground);
b1.setBackgroundResource(R.drawable.button_testbackground);
}
}
我想在按下一个按钮后更改一些按钮的背景图像。使用视图正常工作。但是,如果我试图改变一个专门的ImageButton我得到这个从logcat的:Android Studio设置Imagebutton的背景
产生的原因:显示java.lang.NullPointerException:试图调用虚拟方法无效android.widget.ImageButton.setBackgroundResource(INT)“上空对象引用 在com.example.loan.fastclickerv30.Game_Screen.test(Game_Screen.java:43)
这是ImageButton的XML代码:
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imbttn1"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_above="@+id/imageView"
android:layout_toStartOf="@+id/textViewLevel"
android:onClick="test" />
请张贴activity_start_menue.xml –
2个问题......你在哪里叫“测试”?作为一个ImageButton,你会想要setImageResource,而不是背景资源。 ImageResource为您提供所有有趣的imageview功能(如scaletype和whatnot),其中backgroundResource恰好适合图像到背景 – Psest328
您的错误完全告诉你什么是错的。您试图对未设置的对象调用函数。这就是为什么你会得到一个'NullPointerException'。你在哪里测试'测试(视图)'顺便说一句? – Bram