2016-07-08 1 views
-4

Dans un fragment, j'essaie de configurer une vue de liste. En onCreateView():ListView est nul, pourquoi?

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

Voici le xml pour la vue de la liste:

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

Voici l'élément liste fichier xml:

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

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

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

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

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

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

    </LinearLayout> 

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

</RelativeLayout> 

Voici le stacktrace:

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

J'ai d ebugged et le champ mFindFriendOptionsListView est null même si je l'ai défini en utilisant findViewById(). Pourquoi le champ ListView est-il nul et comment puis-je résoudre ce problème pour que je n'obtienne plus un java.lang.NullPointerException?

+0

Quelle est la valeur de 'R.id.find_friends_list_view'? –

Répondre

3

Je devine que c'est parce qu'il a un mauvais identifiant find_friends_options_list_view, et vous obtenez avec cette id:

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

Modifier l'un pour correspondre à l'autre. Prenez l'habitude de copier et coller ces choses, sinon vous allez avoir un mauvais moment.

+0

merci désolé pour la question stupide. –

+0

Ah, arrive à tout le monde. Ne t'en fais pas pour ça. – Vucko

+1

Merci mec, pour être honnête, j'ai codé pour 8 heures comme si ce n'était pas une grosse affaire, c'est les vacances d'été. @Vucko –