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);
}
}
Я хочу изменить фоновое изображение некоторых кнопок после нажатия одной кнопки. Использование View отлично работает. Но если я пытаюсь изменить ImageButton конкретно я получаю это от LogCat:Android-установка фонового изображения изображения
Вызванный: java.lang.NullPointerException: Попытка вызвать виртуальный метод «недействительным android.widget.ImageButton.setBackgroundResource (INT)» на ссылка объект пустой на com.example.loan.fastclickerv30.Game_Screen.test (Game_Screen.java:43)
Это XML-код для ImageButton:
<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" />
please post activity_start_menue.xml –
2 вопроса ... где вы называете 'test'? и являясь ImageButton, вам нужно будет установить значениеImageResource, а не фоновый ресурс. ImageResource дает вам все полезные функции просмотра изображений (например, scaletype и whatnot), где backgroundResource просто подходит для изображения на задний план. – Psest328
Ваша ошибка точно говорит вам, что не так. Вы пытались вызвать функцию для объекта, который не задан. Вот почему вы получаете «NullPointerException». И где вы настраиваете 'test (View)' btw? – Bram