2013-07-08 122 views
1

在我的片段中使用view.findViewById(id)來查找ListView時,此返回罰款,但我可以使用該值,但是,當我試圖找到ImageView使用完全相同的方法,但只是將ID更改爲正確的ID,它將返回空值,這會在應用程序的稍後出現問題。view.findViewById爲ImageView返回null,但不是ListView

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View fragmentView = inflater.inflate(R.layout.fragment_boardlist, 
       container, false); 

     boardListView = (ListView) fragmentView 
       .findViewById(R.id.fragmentListView); 
     stickyImageView = (ImageView) fragmentView 
       .findViewById(R.id.favouriteImageView); 

      // ...   

     return fragmentView; 
    } 

不知道爲什麼會發生這種情況,因爲我使用相同的方式,所以我想知道是否有人知道爲什麼。

這裏是XML:

<TextView 
    android:id="@+id/initialsTextView" 
    android:layout_width="35dp" 
    android:layout_height="fill_parent" 
    android:layout_marginBottom="10dp" 
    android:layout_marginLeft="15dp" 
    android:layout_marginRight="10dp" 
    android:layout_marginTop="10dp" 
    android:gravity="center_vertical" 
    android:textSize="12sp" /> 

<TextView 
    android:id="@+id/fullNameTextView" 
    android:layout_width="0dp" 
    android:layout_height="fill_parent" 
    android:layout_marginBottom="10dp" 
    android:layout_marginTop="10dp" 
    android:layout_weight=".85" 
    android:gravity="center_vertical" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<ImageView 
    android:id="@+id/favouriteImageView" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:layout_weight=".15" 
    android:clickable="true" 
    android:contentDescription="@string/imageview_contentdescription" 
    android:src="@android:drawable/star_big_off" /> 

+1

你可以發佈ImageView所在的xml嗎? – Emmanuel

+0

@ E.Odebugg,當然。我已將它添加到問題中。 – Dan

+0

您是否忘記複製XML文件的ListView部分? – dymmeh

回答

0

糾正我,如果我錯了,但如果你試圖訪問一個ImageView的是的自定義行的一部分ListView,首先你需要設置適配器。然後你需要重寫適配器的getView()。然後獲取ImageView的參考。

+0

是的,ImageView是自定義行的一部分。我使用getView()設置適配器,數據將在應用程序中正確填充,但在我的片段中,我試圖爲ImageView設置偵聽器,以便用戶可以將該行切換爲收藏夾。 – Dan

+0

啊,我只是想通了。我試圖把聽衆放在現在我已經考慮過的片段中,是愚蠢的。我只需要在適配器的'getView()'方法中設置監聽器。謝謝。 – Dan

+0

很高興我能幫上忙! – Emmanuel

相關問題