Android находит ресурс по id во время выполнения - PullRequest
5 голосов
/ 11 октября 2011

Если я получаю сообщение об ошибке «android.content.res.Resources $ NotFoundException: идентификатор ресурса # 0x7f050007, тип # 0x12 недействителен», могу ли я найти, что это за ресурс, если я знаю его идентификатор?

        ListView list = (ListView)findViewById(R.id.messages_list_view);
        list.setAdapter(new ArrayAdapter<String>(context,
        R.layout.messages_list, headers));

messages_list.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/messages_list_layout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <ListView android:id="@+id/messages_list_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

Ответы [ 4 ]

5 голосов
/ 12 сентября 2013

Для тех, у кого другие упомянутые решения не работают.

Я сделал эту глупую ошибку: -

setContentView(R.id.something);

Вместо

setContentView(R.layout.something);

Исправил это,и ошибка исчезла: D

5 голосов
/ 28 октября 2012

Я получил эту ошибку при использовании ListView во фрагменте.

Разрешается перемещением строк setAdapter в функцию onViewCreated фрагмента. (имеет смысл, что перед созданием представления ListView является недействительным).

так вы получите:

public void onViewCreated(View view,Bundle savedInstanceState){
    ListView list = (ListView) getView().findViewById(R.id.thelist);
    list.setAdapter(mAdapter);
}
2 голосов
/ 11 октября 2011

Вы можете использовать функцию поиска в Eclipse, выполнить поиск "0x7f050007" или перейти к projectfolder/gen/path/R.java, содержащему ваши ресурсы.

Вы найдете что-то вроде этого:

public static final int lineItem=0x7f07001c;

Затем найдите (в этом примере) lineItem с помощью функции поиска Eclipses.Это приведет вас к вашему ресурсу в коде.

0 голосов
/ 11 октября 2011

Проверьте ваш импорт (в верхней части вашего файла класса).Возможно, вы импортировали

android.R

(который предоставляет доступ к ресурсам платформы) вместо

{your_package_name}.R

(вы также можете оставить его пустым).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...