android gridview滑动后数据紊乱处理
来源:互联网 发布:java jdk 1.7 for mac 编辑:程序博客网 时间:2024/04/29 03:10
工单列表以GridView方式实现,希望点击某一个Item后,点击的Item能变换自己的背景,标识为当前点击项。
试了网上几种方法都不是很好(请见
http://blog.sina.com.cn/s/blog_642e41c201013ob1.html;
http://blog.csdn.net/chinaguangzhou000000/article/details/6697184;
以及:gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
ImageView iv = null;
iv = new ImageView(arg0.getContext());
webView.loadUrl(listmenus.get(arg2).getUrl());
ShowImageFileFromAsset(listmenus.get(arg2).getImgselected(), iv);
LinearLayout ll = (LinearLayout) arg1;
TextView ltext = (TextView) ll.getChildAt(1);
ll.removeAllViews();
ll.addView(ltext, 0);
ll.addView(iv, 0);;
}
});
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
ImageView iv = null;
iv = new ImageView(arg0.getContext());
webView.loadUrl(listmenus.get(arg2).getUrl());
ShowImageFileFromAsset(listmenus.get(arg2).getImgselected(), iv);
LinearLayout ll = (LinearLayout) arg1;
TextView ltext = (TextView) ll.getChildAt(1);
ll.removeAllViews();
ll.addView(ltext, 0);
ll.addView(iv, 0);;
}
});
),会遇到以下问题:
1.选择某一项(“A”)后,在选择其他项(“B”),B改变了颜色,A没有改变为未选择项;
2.选择某一项(“A”)后,滑动列表后,A又变成未选择项了;
都是影响客户感知。
经过多次探索,一下方式实现,方便简单:
//适配器(红色为修改处)
public class DesignOrderAdapter extends BaseAdapter {
private List<DesignOrderForm> list = new ArrayList<DesignOrderForm>();
private LayoutInflater mInflater;
private int clickTemp = -1;
public DesignOrderAdapter(DesignOrderActivity designOrderActivity,
List<DesignOrderForm> designOrderList) {
mInflater = (LayoutInflater) designOrderActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.list = designOrderList;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return this.list.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
//标识选择的Item
public void setSeclection(int position) {
clickTemp = position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
.....//其他代码
// 点击改变选中listItem的背景色
if (clickTemp == position) {
orderlayout.setBackgroundResource(R.drawable.left_list_xuanzhong);
} else {
orderlayout.setBackgroundColor(Color.TRANSPARENT);
}}
.....//其他代码
}
//initView初始化UI时,GridView监听事件
designOrderGridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
........//其他代码
//设置适配器
designOrderAdapter.setSeclection(arg2);
designOrderAdapter.notifyDataSetChanged();
........//其他代码
}
});
以下点击每个Item后都会标识成选择项,点击其他Item项后,原Item变成原来未标识。适配器也不会刷新!
附加一个小知识:
designOrderGridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3)
各项的意义:arg0是点击的当前适配器 arg1是当前item的view,通过它可以获得该项中的各个组件。
arg2是当前item的ID。这个id根据你在适配器中的写法可以自己定义。
arg3是当前的item在listView中的相对位置!
arg2是当前item的ID。这个id根据你在适配器中的写法可以自己定义。
arg3是当前的item在listView中的相对位置!
- android gridview滑动后数据紊乱处理
- Android中ListView内容超过一屏,上下滑动后数据紊乱的问题
- android gridview 滑动后选项错误处理的两种方法
- GridView内下拉列表选择后插入数据或者在选择后对数据做处理
- android gridview左右滑动(二)
- 【Android】禁止滑动的GridView
- Android横向滑动的GridView
- GridView处理数据代码
- android GridView横向滑动后 为什么MyGridView.setSelection(position) 就没效果了
- Android ListView GridView添加 padding后padding部分不跟随滑动移动问题解决方案
- Android优化:ListView嵌套GridView滑动时不加载图片,停止后加载图片
- Tab设置背景图片后,布局紊乱
- android手势滑动处理
- Android滑动冲突处理
- android gridview左右滑动 并能定位
- Android GridView显示一行,左右滑动
- Android GridView显示一行,左右滑动
- Android GridView显示一行,左右滑动
- eclipse中修改应用程序虚拟机的内存以及解决eclipse的PermGen space问题
- JSon在Android中的应用
- 本月有多少天
- 袁静个人所得税计算机——不久的将来我就会用到它了哈哈
- Cocos2d-x学习(十九):iOS6中无法正常游戏横屏的解决方案
- android gridview滑动后数据紊乱处理
- 杭电 1000
- 求解一元二次方程的根
- C#获取当前路径的方法集合
- 博文模板!!!
- 杭电 1001
- 一些数字推理题
- 关于if语句的使用简单举例,如果输入的数字不在有效范围内可继续输入 .cpp
- dwz js 框架的小记