Listview选择器不适用于自定义列表视图

时间:2014-04-19 13:43:56

标签: android listview

enter image description here

我正在开发一个具有自定义列表视图的应用程序。现在,我想为列表视图设置选择器,但它不起作用。我无法理解为什么它不起作用,可能是因为它的布局文件已经为这个视图设置了切换按钮和选择器。我有谷歌很多但没有找到任何解决方案。提前致谢。

这是我的main.xml

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

        <RelativeLayout
            android:id="@+id/relativeNavBar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/header_bg" >

            <TextView
                android:id="@+id/ListItem_txtHeading"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:text="@string/myitem"
                android:textColor="@color/white"
                android:textSize="20sp" />

            <Button
                android:id="@+id/btnPopUp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_centerInParent="true"
                android:layout_marginLeft="5dp"
                android:background="@drawable/selector_btn_menu"
                android:textStyle="bold" />

            <Button
                android:id="@+id/btnScan"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerInParent="true"
                android:layout_marginRight="5dp"
                android:background="@drawable/selector_button_scan" />
        </RelativeLayout>


        <RelativeLayout
            android:id="@+id/relativeAutoComplete"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/relativeNavBar"
            android:background="@drawable/sub_header_bg"
            android:focusableInTouchMode="true"
            android:orientation="horizontal" >

            <LinearLayout
                android:id="@+id/linear"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginLeft="20dp"
                android:background="@drawable/add_search_inputbg"
                android:gravity="center_vertical" >

                <AutoCompleteTextView
                    android:id="@+id/ListItem_autoComplete"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="5dp"
                    android:layout_weight="40"
                    android:background="@android:color/transparent"
                    android:ellipsize="end"
                    android:focusable="true"
                    android:inputType="text"
                    android:lines="1"
                    android:paddingLeft="10dp"
                    android:singleLine="true"
                    android:textColor="@color/greyish"
                    android:textSize="16sp"
                    android:visibility="visible" />

                <EditText
                    android:id="@+id/ListItem_EdtSearch"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="5dp"
                    android:layout_weight="40"
                    android:background="@android:color/transparent"
                    android:ellipsize="end"
                    android:focusable="true"
                    android:inputType="text"
                    android:lines="1"
                    android:paddingLeft="10dp"
                    android:singleLine="true"
                    android:textColor="@color/greyish"
                    android:textSize="16sp"
                    android:visibility="gone" />

                <ImageButton
                    android:id="@+id/ListItem_btnDelete"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="2dp"
                    android:layout_marginRight="2dp"
                    android:layout_weight="1"
                    android:background="@null"
                    android:contentDescription="@string/All_completed_items"
                    android:src="@drawable/crossbutton"
                    android:visibility="invisible" />
            </LinearLayout>

            <ImageButton
                android:id="@+id/ListItem_btnAdd"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:layout_marginRight="4dp"
                android:background="@null"
                android:contentDescription="@string/All_completed_items"
                android:src="@drawable/add_button_selector"
                android:visibility="visible" />

            <ImageButton
                android:id="@+id/ListItem_btnSearchAutoComplete"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:layout_marginRight="4dp"
                android:background="@null"
                android:contentDescription="@string/All_completed_items"
                android:src="@drawable/search_button"
                android:visibility="gone" />
        </RelativeLayout>


        <LinearLayout
            android:id="@+id/realtiveBottom"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:background="@drawable/bottom_bar_bg"
            android:orientation="horizontal" >

            <Button
                android:id="@+id/ListItem_btnSort"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_weight="1"
                android:background="@drawable/selector_btnsort" />

            <Button
                android:id="@+id/ListItem_btnSearch"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_weight="1"
                android:background="@drawable/selector_btnsearch" />

            <Button
                android:id="@+id/ListItem_btnShare"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_weight="1"
                android:background="@drawable/selector_btnshare" />

            <Button
                android:id="@+id/ListItem_btnAbout"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_weight="1"
                android:background="@drawable/selector_btnabout" />

            <Button
                android:id="@+id/ListItem_btnHelp"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_weight="1"
                android:background="@drawable/selector_btnhelp" />
        </LinearLayout>

        <ListView
            android:id="@+id/ListItem_lvItem"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_above="@id/realtiveBottom"
            android:layout_below="@id/relativeAutoComplete"
            android:background="@drawable/item"
            android:choiceMode="singleChoice"
            android:divider="@drawable/divider"
            android:fastScrollEnabled="true"
            android:scrollingCache="false" >
        </ListView>

    </RelativeLayout>  

这是我的cusomadaptor.xml

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

    <RelativeLayout
        android:id="@+id/relativeAdaptor"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:padding="5dp" 
         >

        <CheckBox
            android:id="@+id/ListItem_checkbox"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:focusable="false" 
            android:layout_marginLeft="3dp"/>

        <TextView
            android:id="@+id/ListItem_txtName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="7dp"
            android:layout_marginRight="5dp"
            android:layout_toRightOf="@id/ListItem_checkbox"
            android:ellipsize="end"
            android:ems="7"
            android:singleLine="true"
            android:textColor="@color/greyish"
            android:textSize="14sp" />

        <TextView
            android:id="@+id/ListItem_txtDummyTest"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:layout_centerVertical="true"
            android:ellipsize="end"
            android:singleLine="true"
            android:text="@string/All_completed_items"
            android:textColor="@color/greyish"
            android:textSize="18sp"
            android:textStyle="bold"
            android:visibility="gone" />

        <ToggleButton
            android:id="@+id/ListItem_toggleRecurring"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginRight="5dp"
            android:background="@drawable/togglebutton_listitem_selector"
            android:focusable="false"
            android:textOff=""
            android:textOn=""
            android:visibility="gone" />

        <RelativeLayout
            android:id="@+id/relativeDays"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginRight="10dp"
            android:layout_toLeftOf="@id/ListItem_toggleRecurring" >

            <TextView
                android:id="@+id/ListItem_edtDays"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/new_my_item_input"
                android:gravity="center"
                android:visibility="gone" />

            <ImageView
                android:id="@+id/ListItem_imgdowndays"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@id/ListItem_edtDays"
                android:contentDescription="@string/app_name"
                android:focusable="false"
                android:src="@drawable/new_my_item_arrow_down"
                android:visibility="gone" />

            <ImageView
                android:id="@+id/strip1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@id/ListItem_imgdowndays"
                android:contentDescription="@string/app_name"
                android:focusable="false"
                android:src="@drawable/stripmy"
                android:visibility="gone" />

            <ImageView
                android:id="@+id/ListItem_imgUpdays"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@id/strip1"
                android:contentDescription="@string/app_name"
                android:focusable="false"
                android:src="@drawable/new_my_item_arrow_up"
                android:visibility="gone" />
        </RelativeLayout>

        <Button
            android:id="@+id/ListItem_btnPriority"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_toLeftOf="@id/relativeDays"
            android:background="@drawable/low_priority"
            android:focusable="false"
            android:visibility="gone" />

        <TextView
            android:id="@+id/ListItem_singleLine"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="20dp"
            android:layout_toRightOf="@id/ListItem_txtName"
            android:background="@drawable/i_got_it11"
            android:visibility="gone" />
    </RelativeLayout>

</LinearLayout>

这是item.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/bg"/>
    <item android:state_selected="true" android:drawable="@drawable/bg"/>
</selector>

这是我的bg.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
  <solid android:color="@android:color/black"/>
</shape>

1 个答案:

答案 0 :(得分:0)

对于这种情况,您可以为自定义行设置背景布局(用于突出显示效果),并在onItemClickListener()中隐藏/显示背景布局。这就是我在这种情况下所做的。试着让我知道。很抱歉没有发布任何示例代码。我的项目耗尽时间。