ListItem更改背景色,可能不是很好,但能达到效果,点击、长按、方向键选中都会保留背景色:
1、listView控件
<ListView
android:id="@+id/contact_listview"
android:layout_width="wrap_content"
android:layout_height="400dip"
android:divider="#b9b9b9"
android:dividerHeight="1px"
android:cacheColorHint="#00000000"
android:listSelector="@drawable/list_selector"
android:headerDividersEnabled="true">
</ListView>
2、在drawable文件夹中见一个list_selector.xml文件,不用写什么内容,只是用来把系统自带的给覆盖掉。
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
</selector>
3、在values文件夹中新建一个colors.xml文件,用来写颜色值:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="list_item_focus">#626fcd</color>
</resources>
4、在java文件里定义一个私有变量private View itemView;用来保存上一次选中的listitem。
5、在下面三种事件中改变背景色
//listview的itme选中事件
private OnItemSelectedListener itemSelectedListener = new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
itemBackChanged(arg1);
position = arg2;
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
};
//长按事件
private OnItemLongClickListener itemLongClickListener = new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
itemBackChanged(view);
ContactGrpMemActivity.this.position = position;
return false;
}
};
//listview的item点击事件
private OnItemClickListener itemClicklistener = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Log.i(TAG, "**************onItemClick arg0 is " + arg0.getClass().getName());
Log.i(TAG, "**************onItemClick arg1 is " + arg1.getId());
Log.i(TAG, "**************onItemClick arg2 is " + arg2);
Log.i(TAG, "**************onItemClick arg3 is " + arg3);
itemBackChanged(arg1);
position = arg2;
}
};
//改变listitem的背景色
private void itemBackChanged(View view) {
//改变当前点击的listitem中textview的字体颜色
TextView contactName = (TextView)view.findViewById(R.id.contactName);
TextView contactTel = (TextView)view.findViewById(R.id.contactTel);
contactName.setTextColor(Color.WHITE);
contactTel.setTextColor(Color.WHITE);
if(itemView == null) itemView = view;
if(itemView != view) {
//改变上次点击点击的listitem中textview的字体颜色
contactName = (TextView)itemView.findViewById(R.id.contactName);
contactTel = (TextView)itemView.findViewById(R.id.contactTel);
contactName.setTextColor(Color.BLACK);
contactTel.setTextColor(Color.BLACK);
}
itemView.setBackgroundColor(android.R.color.transparent);//将上次点击的listitem的背景色设置成透明
view.setBackgroundResource(R.color.list_item_focus);//设置当前点击的listitem的背景色
itemView = view;
}
6、如果是图片的话,第三部可以跳过,第5步中view.setBackgroundResource(R.color.list_item_focus)改成view.setBackgroundResource(R.drawable.select_bar);就行了
分享到:
相关推荐
ListView动态加载listitem
android中拖动ListItem的源代码。可以4.03下完美运行的哟。
可移动列表项的listview,listitem项的位置可以拖动到指定项位置
android listview综合使用示例_结合数据库操作和listitem单击长按等事件处理 欢迎访问我的博客对代码进行交流: http://blog.csdn.net/lk_blog
http://blog.csdn.net/imyfriend/article/details/48594265 中提到的Demo
WPF引入了“无外观控件”的概念。现在开发人员可以基于功能而不是外观来选择控件。外观可以自定义以满足开发人员的需要。Todd Miranda演示了如何使用模板来自定义ListBox中ListItem的外观。
react demo
WPF引入了“无外观控件”的概念。现在开发人员可以基于功能而不是外观来选择控件。外观可以自定义以满足开发人员的需要。Todd Miranda演示了如何使用模板来自定义ListBox中ListItem的外观。
Android 仿Iphone listview的Item挪动位置
Duilib中 ListItem布局切换效果实现,类似QQ好友列表,鼠标点击和经过都有不同的显示效果
鸿蒙语言 listitem和tabcontent +页面传参
listView中多个listItem布局时,convertView缓存及使用
优化swipelistview仿微信ListItem左右滑动,隐藏的按钮能根据手势滑出,并动画收起。
1.背景色: listView设置背景色android:background="@drawable/bg",拖动或者点击list空白位置的时候发现ListItem都变成黑色。 因为默认的ListItem背景是透明的,而ListView的背景是固定不变的,所以在滚动条滚动的...
本文要实现的是拖拽ListView的Item项,在布局方面还是用基于布局泵LayoutInflater来从不同的Layout模板拿到不同的布局然后将view返回,感兴趣的朋友可以了解下哈
android listview综合使用示例_结合数据库操作和listitem单击长按等事件处理 欢迎访问博客:http://blog.csdn.net/lk_blog 对本例代码进行交流.
有了ListItem:不再需要编写一个呆板的无趣的Adapter。把精力专注于编写一个个高内聚、低耦合的Item。你可以像搭积木一样,在不同页面将这些Item组合起来。为什么要ListItemAdapter的问题ListItem源于Adapter的"呆板...
WPF引入了“无外观控件”的概念。现在开发人员可以基于功能而不是外观来选择控件。外观可以自定义以满足开发人员的需要。Todd Miranda演示了如何使用模板来自定义ListBox中ListItem的外观。
WPF引入了“无外观控件”的概念。现在开发人员可以基于功能而不是外观来选择控件。外观可以自定义以满足开发人员的需要。Todd Miranda演示了如何使用模板来自定义ListBox中ListItem的外观。
安卓自定义list的listitem,item中添加图片,按钮等元素