有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java ListView为空,为什么?

在一个片段中,我试图设置一个列表视图。在onCreateView()中:

mFindFriendsOptionsListView = (ListView) view.findViewById(R.id.find_friends_list_view);
mFindFriendsOptionsAdapter = new FindFriendsOptionsAdapter(mFindFriendOptionIconIds, mFindFriendOptionTitles, mFindFriendOptionDescription);
mFindFriendsOptionsListView.setAdapter(mFindFriendsOptionsAdapter);

以下是列表视图的xml:

<ListView
        安卓:id="@+id/find_friends_options_list_view"
        安卓:layout_width="match_parent"
        安卓:layout_height="wrap_content"
        安卓:layout_marginBottom="32dp"
        安卓:layout_alignParentTop="true"
        安卓:divider="#999999"
        安卓:dividerHeight="1dp"/>

以下是列表元素xml文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
              xmlns:tools="http://schemas.安卓.com/tools"
              安卓:layout_width="match_parent"
              安卓:layout_height="wrap_content">

    <LinearLayout
        安卓:layout_width="match_parent"
        安卓:layout_height="wrap_content"
        安卓:orientation="horizontal">

        <ImageView
            安卓:layout_width="60dp"
            安卓:layout_height="60dp"
            安卓:id="@+id/option_icon_image_view"
            安卓:layout_marginRight="16dp"
            安卓:layout_marginEnd="16dp"
            安卓:layout_marginStart="16dp"
            安卓:layout_marginLeft="16dp"/>

        <LinearLayout
            安卓:layout_width="wrap_content"
            安卓:layout_height="wrap_content"
            安卓:orientation="vertical"
            安卓:layout_gravity="center_vertical">

            <TextView
                安卓:layout_width="wrap_content"
                安卓:layout_height="wrap_content"
                安卓:id="@+id/option_title_text_view"
                tools:text="Contacts"
                安卓:textSize="18sp"
                安卓:layout_marginBottom="6dp"/>

            <TextView
                安卓:layout_width="wrap_content"
                安卓:layout_height="wrap_content"
                安卓:id="@+id/option_description_text_view"
                tools:text="Upload contacts to be your friends"
                安卓:textSize="14sp"/>
        </LinearLayout>

    </LinearLayout>

    <ImageView
        安卓:layout_width="20dp"
        安卓:layout_height="20dp"
        安卓:id="@+id/arrow_image_view"
        安卓:layout_centerVertical="true"
        安卓:layout_alignParentRight="true"
        安卓:layout_alignParentEnd="true"
        安卓:layout_marginRight="8dp"
        安卓:layout_marginEnd="8dp" />

</RelativeLayout>

以下是stacktrace:

java.lang.NullPointerException: Attempt to invoke virtual method 'void 安卓.widget.ListView.setAdapter(安卓.widget.ListAdapter)' on a null object reference
    at com.hb.birthpay.fragment.FindFriendFragment.onCreateView(FindFriendFragment.java:66)

我已经调试过,字段mFindFriendOptionsListViewnull,尽管我使用findViewById()进行了设置。为什么ListView字段为空?如何修复此问题,使我不再获得java.lang.NullPointerException


共 (1) 个答案

  1. # 1 楼答案

    我猜这是因为它有一个错误的id find_friends_options_list_view,而你用这个id得到它:

    mFindFriendsOptionsListView = (ListView) view.findViewById(R.id.find_friends_list_view);
    

    将其中一个更改为与另一个相对应。养成复制和粘贴这些东西的习惯,否则你会玩得很不开心