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