关于在Android中如何点击GridView或者ListView中item子项达到修改子项背景的问题解决方案

原创 2013年12月04日 16:16:23

曾经在项目中遇到过类似的问题。需要修改item子项的背景,达到互斥效果。

首先,写出自己的适配器。Adapter

这里以GridView为目标

1.适配器,每个人的适配器不尽相同,此为我自己写的。

关键代码。

为:

此处就是处理更换背景的代码。在Adapter中的getView方法中可以找到

if( getSelectIndex() == position ){

    viewHolder.item_imageView.setVisibility(View.VISIBLE);

}else{

viewHolder.item_imageView.setVisibility(View.GONE);

}


********************************************************************************************

public class FamousteacherAdapterextends BaseAdapter {


private ArrayList<HashMap<String, Object>>dataList;

private Context context;

private LayoutInflater lf;

private ViewHolder viewHolder = null;

privateint selectIndex = -1;

public int getSelectIndex() {

returnselectIndex;

}


public void setSelectIndex(int selectIndex) {

this.selectIndex = selectIndex;

}

public FamousteacherAdapter(Context context,

ArrayList<HashMap<String, Object>> dataList) {

this.context = context;

this.dataList = dataList;

lf = LayoutInflater.from(context);

}


@Override

public int getCount() {

return dataList.size();

}


@Override

public Object getItem(int arg0) {

return dataList.get(arg0);

}


@Override

public long getItemId(int arg0) {

return arg0;

}


@Override

public View getView(finalint position, View convertView, ViewGroup parent) {

if (null == convertView) {

viewHolder =new ViewHolder();

convertView = lf.inflate(R.layout.settingtopic_list, null);

viewHolder.item_textview = (TextView) convertView

.findViewById(R.id.item_textview);

viewHolder.item_imageView = (ImageView) convertView

.findViewById(R.id.item_imageView);

convertView.setTag(viewHolder);

} else {

viewHolder = (ViewHolder) convertView.getTag();

}

if( getSelectIndex() == position ){

    viewHolder.item_imageView.setVisibility(View.VISIBLE);

}else{

viewHolder.item_imageView.setVisibility(View.GONE);

}

Map map = dataList.get(position);

viewHolder.item_textview.setText( (CharSequence) map.get("itemText"));

return convertView;

}


class ViewHolder {

TextView item_textview;

ImageView item_imageView;

}

}


2.第二步,在你的Activity中,你要实现点击事件。

在点击事件中将点击item的Position传回适配器中。然后通知适配器数据有变化。然后效果就达到了。

famous_course_gridView.setOnItemClickListener(new OnItemClickListener() {


@Override

publicvoid onItemClick(AdapterView<?> arg0, View view, int arg2,

long arg3) {

if(famousteacherAdapter.getSelectIndex()==-1)

{

famousteacherAdapter.setSelectIndex(arg2);

}

else

{

famousteacherAdapter.setSelectIndex(arg2);

}

famousteacherAdapter.notifyDataSetInvalidated();//一定别忘了写这句。

}

});



listview中点击item进行Item中的控件更新操作。

今天学习了一个新的用法,在listview中点击item进行Item中的控件更新操作,本来是想写一个回调进行实现的,后来发现自己回调的思想理解的不够清澈,那就换个方式来,回调明白了我再补上。注意: ...
  • Anny_Lin
  • Anny_Lin
  • 2015年08月24日 22:13
  • 1541

android gridview点击子选项动态改变item背景颜色

愁了好久的问题,搜索换了个关键词,发现了这篇及时雨的文章http://blog.csdn.net/by317966834/article/details/8834529。跟大家fenx...
  • Caidifel
  • Caidifel
  • 2014年09月25日 15:48
  • 2970

android开发 gridview的item与子控件焦点问题

最近项目中用到了gridview,顺带对gridview的item与子控件焦点问题进行小小的研究比较下; 项目需求:在simphone手持把枪上通过方向按钮实现gridview的菜单选择; 实现方...
  • qq_25188705
  • qq_25188705
  • 2016年04月11日 10:22
  • 1844

Android如何让ListView的子组件按钮响应单击事件并修改该项子控件内容

问题:比如   自定义BaseAdapter并在getView中为每一项的按钮添加单击事件, 分别点击后修改该项的标题名或按钮图片的,我是用ViewHolder, 感觉如果添加匿名内部类似乎办不到  ...
  • nbaqqqq
  • nbaqqqq
  • 2015年12月07日 21:46
  • 1108

Android为ListView的Item设置不同颜色背景

import java.util.ArrayList;  import java.util.HashMap;  import android.os.Bundle;  import ...
  • we__we
  • we__we
  • 2016年01月26日 16:18
  • 3088

ListView的item点击事件及item中子view的点击事件冲突处理方法和思路

如题,这种情况出现的情景是很常见的,要想它们互不冲突,我的处理思路如下: 1. 因为listview是一个viewgroup,在自定义的listview的item布局(layout_items.x...
  • iamwutianbao
  • iamwutianbao
  • 2016年07月12日 11:24
  • 1754

ListView子项item的显示与隐藏

1. 在getView方法中写入:     //记录当前展开项的索引       private int expandPosition = -1;  QueryOrderResul...
  • fenghong_123
  • fenghong_123
  • 2016年10月27日 11:21
  • 1361

listview点击某项修改背景颜色和子控件点击删除某一项

大家做安卓开发的时候listview是经常使用到的东西(虽然现在有了recyclerview),在这里我把自己懂得一点东西分享出来,大神手下留情。 listview点击某一项做操作的时候大家都知道,...
  • liuguangyilegecai
  • liuguangyilegecai
  • 2016年07月31日 11:12
  • 494

GridView的item无法响应点击事件

里面有个ImageButton,怎么设置都不行,(不能点击,不让获取焦点。。) 最后换成ImageView就OK了......
  • wyl530274554
  • wyl530274554
  • 2013年11月26日 09:39
  • 9429

利用ListView可控制添加每一列子项及删除功能

前言:这是我的第一次前言,没什么好说的,意思就是自定义ListView的适配器,ListView要想用的好,还得看适配器好不好使。这篇文章主要讲适配器,先给出适配器吧:import android.c...
  • wanxuedong
  • wanxuedong
  • 2016年12月12日 23:39
  • 799
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于在Android中如何点击GridView或者ListView中item子项达到修改子项背景的问题解决方案
举报原因:
原因补充:

(最多只允许输入30个字)