Android setImageResource NullPointerException

1

У меня есть следующий код:

 public class PainLogger extends Activity implements OnClickListener, OnItemClickListener{
     ImageView image;
     public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
         image = (ImageView)findViewById(R.id.imageView1);
         image.setImageResource(R.drawable.acetaminophen); //**Null Pointer Here**
         ....
     }
 }

Вот изображение в файле items.xml. (Я думаю, именно поэтому это null-- вместо того, чтобы быть в файле main.xml, imageView находится в моем файле items.xml, хотя он появляется в файлах R.id и R.drawable)

    <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" 
     android:src="@drawable/icon" android:id="@+id/imageView1"></ImageView>
Теги:
nullpointerexception
imageview

1 ответ

2

Вы действительно получаете исключение NullPointerException, потому что этот виджет не существует в вашем файле main.xml. R. * перечисляет каждый отдельный ресурс в вашем приложении, так что вы видите в нем R.id.imageView1.

Вы должны либо скопировать содержимое вашего файла items.xml в ваш main.xml, либо использовать <include/> для включения items.xml или main.xml или просто изменить свою логику кода.

Если вы пытаетесь получить доступ к элементам в списке, вы должны использовать ListView в main.xml и использовать адаптер. Вы найдете здесь хороший учебник: http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/

  • 0
    спасибо, но я понятия не имею, как включить представление изображения в мой файл main.xml. мне просто сказать "<включить ImageView android: layout_height =" wrap ...............> </ ImageView> /> "?
  • 0
    Вы можете просто скопировать / вставить макет в нем.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню