1

我的活动布局中有一个 ListView。listview_layout.xml

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

    <ListView android:layout_width="wrap_content"    
        android:layout_height="wrap_content"    
        android:id="@+id/MyListView" />
</LinearLayout>

我正在为 ListView 的 ListItem 使用另一种布局。

listitem_layout.xml

<?xml version="1.0" encoding="utf-8"?>  
<RelativeLayout    
    android:id="@+id/RelativeLayout01"    
    android:layout_width="fill_parent"    
    xmlns:android="http://schemas.android.com/apk/res/android"    
    android:layout_height="fill_parent">  

    <TextView
        android:id="@+id/txtTitle"
        android:layout_width="80dp"
        android:layout_height="wrap_content" />

    <Spinner 
        android:id="@+id/MySpinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>  

我的 Activity 的布局与 listview_layout.xml 的相同。

我使用 SimpleAdapter 引用了 listitem_layout.xml 的布局。

问题:现在我想获取 listview_layout.xm 的 Spinner 控件 ID。

我在 ListView 的活动中使用 findViewById(MySpinner),它有空指针异常的错误。找不到。因为 Activity 布局文件使用 listview_layout.xml 中的 listview_layout.xml 和 Spinner 控件。

任何人的帮助都非常感谢。

4

1 回答 1

3

您不能直接使用 findViewById(spinnerId)。您必须覆盖自定义适配器的 getView() 方法而不是简单适配器,并在其中将 listitem_layout 膨胀为 view(v),然后使用 v.findViewById(spinnerId)。

请参阅以下链接,这将帮助您创建自定义适配器(链接示例中的天气适配器)。在示例中 ImageView 对象是在 GetView 方法中创建的。取而代之的是,您使用 Spinner。

于 2012-12-03T08:08:41.947 回答