Activity.findViewById()错误"类型为id&#34的预期资源;在R.layout对象

时间:2017-12-12 14:17:54

标签: android android-layout findviewbyid

我按照这个在线教程构建了我的应用程序的一部分,它将返回我的联系人列表,但我遇到了一些似乎没有的问题可以在教程的任何地方提到。

这是在类ContactsFragment中,它不是项目的主要活动,但返回要使用的主要活动的片段。

此处发生错误......

public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    mContactsList =
        (ListView) getActivity().findViewById(R.layout.contacts_list_view); <--- here
    //...
}

错误读取&#34;类型为id&#34;的预期资源,这很奇怪,因为Android Studio的intellisense在编写代码时向我建议contacts_list_view

contacts_list_view.xml是我从教程中复制的res/layout目录中的文件。其内容如下:

<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

我对Android Studio和Android开发一般都很陌生,因此我很有可能错过一些明显的东西。请随意向我指出,或其他任何可能解决我问题的事情!

谢谢,

标记

3 个答案:

答案 0 :(得分:1)

在代码中更改此行:

(ListView) getActivity().findViewById(R.layout.contacts_list_view);

(ListView) getActivity().findViewById(R.id.list);

在.xml文件中:

android:id="@android:id/list"

android:id="@+id/list"

答案 1 :(得分:0)

您使用参数findViewById(R.layout.contacts_list_view);拨打R.layout.contacts_list_view,但您需要的是视图的ID ...您实际需要的是R.id.list

答案 2 :(得分:-1)

initialize内的OnViewCreated就像这样

@Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

       ListView mContactsList =(ListView) view.findViewById(R.layout.contacts_list_view);
    }