在列表视图中突出显示一行

时间:2013-09-04 09:24:32

标签: android listview android-listview

我正在创建一个包含this链接引用的列表视图。现在我正在尝试突出显示listview中的特定行。当按下按钮时,特定行突出显示一秒钟。但我想要的是行应该保持相同的颜色,直到我按下一行的按钮。我的列表视图是

<ListView
        android:id="@+id/mainListView"
        android:layout_width="154dp"
        android:layout_height="fill_parent"
        android:layout_margin="10dp"
        android:background="@drawable/layer_list"
        android:dividerHeight="2px"
        >

并在listview中放置textview和imageview。为了突出显示我遵循this教程的视图。我是android新手。帮助我实现这一目标。提前谢谢..

2 个答案:

答案 0 :(得分:0)

a)使用自定义布局

    MyLayout extends LinearLayout implements Checkable {
    boolean check = false
    public void setChecked(boolean checked) {
          if (checked){
             //HIGHLIGHT THE BACKGROUND
          }{
            // remove the background
          }

    }
    public void toggle() {
        setChecked(!check);
    }
    }

b)在自定义列表视图项中,使用MyLayout作为布局

c)在您的活动工具OnItemClickListeneronItemClick中          致电listview.setItemChecked(position, true);

答案 1 :(得分:0)

可绘制文件夹中创建选择器 listview_item_selection_effect.xml

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

    <item android:state_focused="true">
    <shape>
        <solid android:color="#ffffff" />
    </shape>
</item>
    <item>
    <shape>
        <solid android:color="#00a7eb" />
    </shape>
</item>
</selector>

在包含 ListView

的布局中
android:background="?android:attr/activatedBackgroundIndicator"

活动上单击ListView项目

   listView.setOnItemClickListener(new OnItemClickListener(){
    @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3){ 
       listView.setSelector(R.drawable.listview_item_selection_effect);
    listView.setItemChecked(position,true);
    }
});

ListView

android:choiceMode="singleChoice"