listview android行中的按钮选择器

时间:2013-10-05 10:44:36

标签: android android-listview

我的应用程序中有一个listview,其中包含自定义视图。任何项目都有一个按钮,我将选择器设置为所有按钮的背景,但选择器根本不起作用。 布局我的适配器

<LinearLayout
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:gravity="center"
     android:weightSum="100"
     >
<Button android:layout_width="0dp"
          android:layout_height="wrap_content"
          android:id="@+id/textview"
          android:background="@drawable/up_item_list"
          android:gravity="center"
          android:layout_weight="60"          
          android:onClick="listener"
          android:focusableInTouchMode="true"
          android:clickable="true"
          android:focusable="true"
          android:padding="5dp"
          />
</LinearLayout>

我的活动布局

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:id="@+id/lay"
    xmlns:android="http://schemas.android.com/apk/res/android"
     >
<ListView android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:id="@+id/listview"
          android:divider="@android:color/transparent"
          android:dividerHeight="10dp"

          >
</ListView>

</LinearLayout>

我的选择器

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_pressed="false" >

<shape 
      android:shape="rectangle" >
<gradient
        android:startColor="#aaaaaa"
        android:endColor="#ffffff"
        android:angle="90"
        android:type="linear"/>   
        <corners android:radius="5dp"/>
<stroke android:width="1dp" android:color="#000000" />
<padding android:left="1.5dp" android:right="1.5dp" android:top="10dp"  android:bottom="10dp" />
</shape>
</item>
<item android:state_pressed="true" >
     <shape  android:shape="rectangle" >
         <gradient android:startColor="#fa7905"
                   android:endColor="#fcc96b"
                   android:angle="90"
             ></gradient>
         <corners android:radius="5dp"/>
<stroke android:width="1dp" android:color="#000000" />
<padding android:left="1.5dp" android:right="1.5dp" android:top="10dp"
     android:bottom="10dp" />
     </shape>
</item>
 <item android:state_focused="true" >
      <shape  android:shape="rectangle" >
         <gradient android:startColor="#fa7905"
                   android:endColor="#fcc96b"
                    android:angle="90"
             ></gradient>
         <corners android:radius="5dp"/>
<stroke android:width="1dp" android:color="#000000" />
<padding android:left="1.5dp" android:right="1.5dp" android:top="10dp"
     android:bottom="10dp" />
     </shape>
  </item>
</selector>

2 个答案:

答案 0 :(得分:0)

将此代码写在一个单独的xml文件中,如..

<shape 
  android:shape="rectangle" >
<gradient
    android:startColor="#aaaaaa"
    android:endColor="#ffffff"
    android:angle="90"
    android:type="linear"/>   
    <corners android:radius="5dp"/>
   <stroke android:width="1dp" android:color="#000000" />
   <padding android:left="1.5dp" android:right="1.5dp"
    android:top="10dp"                         
  android:bottom="10dp" />

并保存一些文件..然后将其应用于选择器...类似..

<item android:drawable="@drawable/your file name" android:state_pressed="true"></item>

答案 1 :(得分:0)

// try this
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" >
        <shape
                android:shape="rectangle" >
            <gradient
                    android:startColor="#aaaaaa"
                    android:endColor="#ffffff"
                    android:angle="90"
                    android:type="linear"/>
            <corners android:radius="5dp"/>
            <stroke android:width="1dp" android:color="#000000" />
            <padding android:left="1.5dp" android:right="1.5dp" android:top="10dp"  android:bottom="10dp" />
        </shape>
    </item>
    <item android:state_enabled="true" android:state_focused="false" android:state_pressed="false" >
        <shape  android:shape="rectangle" >
            <gradient android:startColor="#fa7905"
                      android:endColor="#fcc96b"
                      android:angle="90"
                    ></gradient>
            <corners android:radius="5dp"/>
            <stroke android:width="1dp" android:color="#000000" />
            <padding android:left="1.5dp" android:right="1.5dp" android:top="10dp"
                     android:bottom="10dp" />
        </shape>
    </item>
    <item android:state_pressed="true" >
        <shape
                android:shape="rectangle" >
            <gradient
                    android:startColor="#aaaaaa"
                    android:endColor="#ffffff"
                    android:angle="90"
                    android:type="linear"/>
            <corners android:radius="5dp"/>
            <stroke android:width="1dp" android:color="#000000" />
            <padding android:left="1.5dp" android:right="1.5dp" android:top="10dp"  android:bottom="10dp" />
        </shape>
    </item>
    <item android:state_focused="true" >
        <shape
                android:shape="rectangle" >
            <gradient
                    android:startColor="#aaaaaa"
                    android:endColor="#ffffff"
                    android:angle="90"
                    android:type="linear"/>
            <corners android:radius="5dp"/>
            <stroke android:width="1dp" android:color="#000000" />
            <padding android:left="1.5dp" android:right="1.5dp" android:top="10dp"  android:bottom="10dp" />
        </shape>
    </item>
</selector>