在列表视图上突出显示所选项目

时间:2013-10-18 01:04:42

标签: android listview android-listview

在有人将此问题标记为重复之前,我必须说我已经知道这个问题已经被多次询问了,但每次我尝试时我总是失败。

所以我在左边有一个日期列表视图,我想在右边显示数据,我想制作一个列表视图,可以显示哪个项目被选中,所以我知道我选择了哪个日期。 到目前为止,我已经尝试过了;

列表视图上的

我添加了android:choiceMode="singleChoice";

<ListView
        android:id="@+id/listTglRMPasien"
        android:layout_width="180dp"
        android:layout_height="wrap_content"
        android:layout_above="@+id/btnObatAlkes"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true" 
        android:choiceMode="singleChoice">
</ListView>

在listview项目上我添加了android:background="@drawable/list_selector";

<?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" >

    <TextView 
        android:id="@+id/txtListRekamMedikTanggal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/emptyString"
        android:textAppearance="?android:attr/textAppearanceLarge" 
        android:background="@drawable/list_selector"/>

    <TextView
        android:id="@+id/txtListRekamMedikTabel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/emptyString"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:visibility="gone" />

</LinearLayout>

和list_selector

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

请注意,ic_launcher和blue这里是png文件,它应该是“@ drawable / listitem_pressed”和“@ drawable / solid_white”,我从here找到了这个答案 但不知怎的,它有一个错误,它说No resource found that matches the given name我觉得有些东西丢失所以我把它改成了png文件

无论如何,当我尝试运行此功能时,它始终显示ic_launcher我是否选择它,它从不显示blue

2 个答案:

答案 0 :(得分:1)

显然是因为我的API级别太低,我将其从API级别8更改为API级别14。

这是关于how to change min. API level for your Android app in Eclipse

的好答案

答案 1 :(得分:0)

这是我在ListView上所做的。在res/values文件夹上创建自己的主题,您可以将其命名为mytheme.xml。这是我在mytheme.xml上添加的内容

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="mytheme" parent="android:Theme.Holo.Light">
   <item name="android:textColor">#fff</item>
</style>
</resources>

然后在Manifest中将此android:theme="@style/mytheme"添加到ListView类的活动中。

希望它有所帮助。