1

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

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

并在列表视图中放置一个文本视图和一个图像视图。为了突出显示我遵循教程的视图。我是安卓新手。帮助我实现这一目标。提前致谢..

4

2 回答 2

1

在可绘制文件夹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"

在您的Activity On 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);
    }
});

列表视图中

android:choiceMode="singleChoice"
于 2013-09-04T09:47:26.320 回答
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);

于 2013-09-04T09:43:56.680 回答