我正在创建一个包含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新手。帮助我实现这一目标。提前谢谢..
答案 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)在您的活动工具OnItemClickListener
和onItemClick
中
致电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"