Подтвердить что ты не робот

FATAL EXCEPTION: main java.lang.RuntimeException: у содержимого есть представление с атрибутом id 'android.R.id.list', который не является классом ListView

Я пытаюсь использовать ListView в фрагменте. Но я получаю эту ошибку: FATAL EXCEPTION: main java.lang.RuntimeException: у содержимого есть представление с атрибутом id 'android.R.id.list', который не является классом ListView.
Мой код:

My ListFragment:

public class whitelist_list extends ListFragment {


    Context mContext;

    @Override
    public void onAttach(Activity activity) {
        mContext = activity;
        Log.i("Event", "onAttach called");
        super.onAttach(activity);
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
    }

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
                "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
                "Linux", "OS/2" };
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
                android.R.layout.simple_list_item_1, values);
        setListAdapter(adapter);
        return inflater.inflate(R.layout.whitelist_content, container, false);
    }

    @Override
    public void onListItemClick(ListView l, View v, int position, long id) {
        // Do something with the data
    }

}


whitelist_list newFragment = new whitelist_list();
fragmentManager.beginTransaction()
.replace(R.id.content_frame, newFragment)
.commit();

Изменить: Решение: объявить Listview с android: id = "@id/android: list"

4b9b3361

Ответ 1

Если вы используете ListActivity/Fragment, идентификатор вашего ListView в вашем макете должен быть @android: id/list, поэтому:  В вашем whitelist_list.xml(whatever_activityname.xml) в вашем ListView измените id на android: id = "@android: id/list"

<ListView android:id="@android:id/list"
       android:layout_width="match_parent"
       android:layout_height="match_parent"/>

Ответ 2

У меня была эта ошибка некоторое время назад. По какой-то причине XML для макета был изменен, так что один из компонентов имел неправильный тип. Перейдите в xml и найдите "android.R.id.list", который не принадлежит этому элементу. Я не знаю, как это изменилось, но я думаю, что, возможно, при использовании редактора графического интерфейса я кое-что изменил, чтобы этого не произошло. Если вы его не видите, разместите макет