关于listview中的tag,点击item背景切换。松手也不会变。

tag可以用来保留一个当前被点击的 view。下次再点击的时候,可以清除被保留view的背景。

menuList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
View tag=(View)parent.getTag();
if (tag != null)
{
if (tag.getId()==id) return;
tag.setBackgroundResource(R.drawable.disselected);
}
view.setBackgroundResource(R.drawable.selected);
parent.setTag(view);
}
});

上面的adapter用到了自己写的初始化list view的背景色选项

import java.util.List;
import java.util.Map;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SimpleAdapter;

public class changeBGAdapter extends SimpleAdapter {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View v = super.getView(position, convertView, parent);
v.setBackgroundResource(R.drawable.disselected);

return v;
}

public changeBGAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to) {
super(context, data, resource, from, to);
}
}

时间: 2024-08-27 22:40:02

关于listview中的tag,点击item背景切换。松手也不会变。的相关文章

Android ListView中Button事件 点击冲突问题的解决方案

今天遇到一个问题:在设置listview  自定义adapter的时候 ,点击item有点击效果,然后点击item布局文件中的某个button 的时候  也同时触发了listview的点击效果, 解决方案是: 1.在adapter布局文件中添加 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk

Android开发之ListView中的Button点击设置

在ListView的Item中,如果有Button控件,那么要实现Button和Item点击都有响应,可以将Item的Layout中Button的focusable属性设为false,然后设置layout的属性android:descendantFocusability="blocksDescendants". 代码如下: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLay

ListView中各组件点击事件冲突,ListView不响应OnItemClickListener事件

参考博文:https://xjaphx.wordpress.com/2011/07/14/listview-doesnt-respond-to-onitemclicklistener/ #1,listview item中包含checkbox,需要改变checkbox的属性设置: android:focusable="false" android:focusableInTouchMode="false" #2,包含ImageButton,在代码中设置:在布局文件中设置

Android学习之解决ListView中item点击事件和item中Button点击事件冲突问题

在ListView中添加Button后,如果只是单纯的加入而不加限制的话,ListView的onClick点击事件没有响应,因为Button获取了item的焦点,想要两者都可点击,需要加上如下限制: 在ListView的适配器中的布局文件中添加: (1)在布局文件的根元素上中添加属性android:descendantFocusability="blocksDescendants" (2)在Button中添加属性android:focusable="false"和a

我的Android进阶之旅------&gt;Android中ListView中嵌套(ListView)控件时item的点击事件不起作的问题解决方法

开发中常常需要自己定义Listview,去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,可能会发生点击每一个item的时候没有反应,无法获取的焦点. 如果你的自定义ListViewItem中有Button.ImageButton或者Checkable的子类控件的话,那么默认focus是交给了子控件,而ListView的Item能被选中的基础是它能获取Focus.所以常常当点击item时变化的是子控件,item本身的点击没有响应. 这时候就可以使用descendan

Android中Listview点击item不变颜色以及设置listselector 无效

这是同一个问题,Listview中点击item是会变颜色的,因为listview设置了默认的listselector,有一个默认的颜色,同理如果点击没颜色变化我们怎么设置listselector也不会变颜色的. 但是在我们的开发过程中,我们可能会碰到这样的问题listview点击不变颜色,总结了一下大概有这几种原因: 1.item的layout设置background颜色值,去掉背景颜色即可 2.listview中listselector属性的效果被覆盖了,比如列表的Item为一个占满单元格的I

我的Android进阶之旅------&amp;gt;Android中ListView中嵌套(ListView)控件时item的点击事件不起作的问题解决方法

开发中经常须要自定义Listview,去继承BaseAdapter,在adapter中依照需求进行编写,问题就出现了,可能会发生点击每个item的时候没有反应,无法获取的焦点. 假设你的自己定义ListViewItem中有Button.ImageButton或者Checkable的子类控件的话,那么默认focus是交给了子控件,而ListView的Item能被选中的基础是它能获取Focus. 所以经常当点击item时变化的是子控件,item本身的点击没有响应. 这时候就能够使用descendan

解决ListView中Item的子控件与Item点击事件冲突

经常会碰到在ListView中点击其中一个Item,会一并触发其子控件的点击事件,例如Item中的Button.ImageButton等,导致了点击Item中Button以外区域也会触发Button点击事件.在网上找了相关方法,这里记录下,亲测可行.. 1.在Item的xml文件根元素中添加属性:android:descendantFocusability="blocksDescendants" 2.在冲突的子控件中添加属性:android:focusable="false&

listview中Item记录点击状态的方法--(点击显示、隐藏的状态保存)

listView中的Item有时候会添加其他的内容,例如有一块儿隐藏的区域,点击后展开,再次点击则隐藏.这时如果Item超过一屏,那么直接在Adapter中的getView方法加入判空操作,即 if(convertView == null){ convertView = new DownloadItem_CachedView(context); } 这时候,可能会出现混乱显示的情况. 解决办法,有三种. 1.  首先,各位想到的可能是直接把判空操作去掉,那么就不会复用,也就不会出现混乱了.这确实