关于Android ListView position错位问题 [问题点数:20分]

Bbs1
本版专家分:0
Blank
GitHub 绑定GitHub第三方账户获取
结帖率 0%
Bbs4
本版专家分:1590
Bbs7
本版专家分:16038
版主
Blank
红花 2014年8月 移动开发大版内专家分月排行榜第一
Blank
蓝花 2015年8月 移动开发大版内专家分月排行榜第三
2014年9月 移动开发大版内专家分月排行榜第三
2014年7月 移动开发大版内专家分月排行榜第三
Bbs5
本版专家分:2993
Bbs1
本版专家分:0
Bbs3
本版专家分:524
ListView图片加载错位问题
ListView 异步加载 图片<em>错位</em>
ListView的CheckBox的错位问题
上图中有一个Recycler的东东,平时我们ListView上可见的Item处于内存中,而且他的Item则放在 这个Recycler中,第一次加载item时,当前页面中的convertView都为NULL,当滚出屏幕,这是时候 ConvertView不为空,所以新的一项会复用这个ConvertView! 解决方式:使用ArrayList记录每个checkbox 的点击状态//需要注意的<em>问题</em>是在给B
listview 图片错位问题
使用universal image loader给<em>listview</em>的没项item下载图片时,出现图片<em>错位</em>的<em>问题</em>,这种情况UIL能处理吗,如果可以的话需要怎么使用?谢谢
listviewposition问题
利用下面的方法,想让<em>listview</em>里前三条显示样式1,后面的全部显示样式2.可是发现当上下滑动listView时,发现3条以后也显示了样式1 。打印一看原来是<em>position</em>的值变了。怎么才能避免这个<em>问题</em>呢,实现前三条显示样式1,后面的全显示样式2。感激不尽[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/3.gif][/img]rn[code=java]rn@Overridern public View getView(int <em>position</em>, View convertView, ViewGroup parent) rn RankHolder holder = null;rn // System.out.println("<em>position</em> outside = " + <em>position</em>);rn if (convertView == null) rn holder = new RankHolder();rn if (<em>position</em> < 3) rn convertView = liRank.inflate(R.layout.item_rank, null);rnrn holder.btnNumber = (Button) convertViewrn .findViewById(R.id.button_rankItem_number);rn holder.tvTitle = (TextView) convertViewrn .findViewById(R.id.textView_rankItem_title);rn holder.tvNum = (TextView) convertViewrn .findViewById(R.id.textView_rankItem_collectNum);rn else rn convertView = liRank.inflate(R.layout.item_rank2, null);rnrn holder.btnNumber = (Button) convertViewrn .findViewById(R.id.button_rankItem2_number);rn holder.tvTitle = (TextView) convertViewrn .findViewById(R.id.textView_rankItem2_title);rn holder.tvNum = (TextView) convertViewrn .findViewById(R.id.textView_rankItem2_collectNum);rn rnrn convertView.setTag(holder);rn else rn holder = (RankHolder) convertView.getTag();rn rnrn String number = String.valueOf(<em>position</em> + 1);rn // System.out.println("string number = " + number);rn holder.btnNumber.setText(number);rn holder.tvTitle.setText(lectures.get(<em>position</em>).getTitle());rn holder.tvNum.setText("");rn return convertView;rn rn[/code]
listview的adapter错位问题
在<em>listview</em>的自定义adapter类里的getview里,设置button的onclicklistener,点击时更换该button的背景,怎么做到不让它<em>错位</em>?
ListView的Intent跳转详情页, 滑动与点击Position错乱导致数据混乱问题解决
<em>问题</em>描述具体<em>问题</em>是这样:今天在项目中遇到了从一个ListView界面,通过点击Item中的控件(我这里做的是图片,后改为布局)跳转到详情页面,并且将部分数据传入到下一个Activity。来个图 <em>问题</em>分析百度了一下,前辈们早已遇到这样的<em>问题</em>,就是没有给出具体的解决办法,大体思路就是:AbListView中获取getView()和滑动操作是异步进行的,其中滑动操作在一个FlingRunnable的支线
解决ListView的getView()方法中View设置监听position错乱的问题
最近在项目中遇到了类似微信朋友圈的功能,可以点赞,评论和分享。类似这样的 这是ListView的一个item,点击右下角的view弹出一个popupWindow,然后popupWindow上面还有三个按钮可点击。不管是点赞还是评论,必须的获得当前条目的位置,然后根据这个位置再去获取一系列的参数信息。但是<em>问题</em>来了。当我为这个item点赞或评论的时候,本item没有反应,而其他的item得到了赞或评论
listview数据错乱、重复的原因分析与解决方案
目前我们使用<em>listview</em>展示数据时,adapter的getView方法通常使用convertView.setTag(viewHolder)的方式来避免出现卡顿的情况,这种方式能使convertView得以复用,避免重复的调用inflate方法渲染界面。但是,如果使用不当,可能会出现数据错乱、重复的<em>问题</em>,比如下面这个demo:这个demo是要<em>listview</em>在偶数行只显示大写字母,在奇数行既显示大
当ListView有Header时,onItemClick里的position不正确
当ListView有Header时,onItemClick里的<em>position</em>不正确 09 Mar 2012 今天在做项目的时候,遇到一个<em>问题</em>,记录下来。 当给ListView加了一个HeaderView后(代码如下),我们发现,onItemClick方法里的<em>position</em>参数的值不是我们所期望的,比如点击ListView的第一行,我们期望的<em>position</em>是0,可是实际上却是
对于ListView中自定义Adapter出现的控件显示错乱现象的解决方案!
对于自定义Adapter中,使用ViewHolder这样的写法应该是绝大多数人的选择,毕竟为了ListView的平滑感考虑。但是,恼人的是,这样的写法会造成listView在滑动中,会出现控件显示错乱的情况。 我的解决方案是这样的,在else中添加一个方法,使viewholder中的控件状态恢复默认值即可。 1 final ViewHolder viewHolder; 2 if ...
listview 错位
我在<em>listview</em>中添加记录 怎么会有<em>错位</em>的现象 我就是根据iItem 和iSubItem确定位置的 不知道哪里错了 请教一下
Android ListView错位问题之背景色错位
最近工作中很多功能有用到ListView控件,当然用此控件,大家都知道需要做一些优化。这些优化是为了防止我的应用出现内存溢出的<em>问题</em>。主要是来做一个视图缓存,其实很简单,就是用一个静态类ViewHolder来缓存我们的每个item视图中每个子控件。具体我就不多介绍了,大家可以去看看优化这一块。这里就不多介绍了,我们这里主要介绍使用视图缓存之后造成的背景色<em>错位</em><em>问题</em>。 package com.exampl
关于android listView子项的问题
初学Android listView,在子项list_item.xmls中的代码如下:rnrn```rn rnrnrn rnrn rn rnrn rnrn rn rnrnrn```rn这样的话整个程序都能运行,如果将最外层的rnrn```rn rn```rnrnrn改成rnrn```rn rn```rnrn,程序就会崩溃。请问各位,难道在listView的子项中,最外层的布局必须要用LinearLayout吗?rnrn
关于android的listView排序问题...
写一个播放器,显示播放列表按照首字母排序,字母排在汉字前面。rnListView的适配器里面有这样一个方法,所以自己构造了一个类SongComparator继承自Comparatorrn[code=java] mSortAdapter.sort(new SongComparator());[/code]rnrn[code=java]package com.huwei.sweetmusicplayer.comparator;rnrnimport java.util.Comparator;rnrnimport com.huwei.sweetmusicplayer.models.Song;rnimport com.huwei.sweetmusicplayer.util.CharacterParser;rnrn rnpublic class SongComparator implements Comparator rnrn @Overridern public int compare(Song song1, Song song2) rn // TODO Auto-generated method stubrn // boolean isLetter1;rn // boolean isLetter2;rn // 得到歌曲名rnrn String title1 ;rn String title2 ;rn int isLetter1_m ;rn int isLetter2_m ;rn boolean isLetter1 ;rn boolean isLetter2 ;rnrn rn title1 = song1.getName();rn title2 = song2.getName();rnrn if (title1.equals("啊啊啊啊") || title2.equals("啊啊啊啊")) rn System.out.println(); //断点位置rn rnrn isLetter1_m = CharacterParser.firstIsLetter(title1);rn isLetter2_m = CharacterParser.firstIsLetter(title2);rnrn isLetter1 = (isLetter1_m == 0) ? false:true;rn isLetter2 = (isLetter2_m == 0) ? false:true;rn rnrn rnrn // if(isLetter1_m!=0)rn // isLetter1=true;rn // else rn // isLetter1=false;rn // rn //rn // if(isLetter2_m!=0)rn // isLetter2=true;rn // else rn // isLetter2=false;rn // rnrn // isLetter1=true;rn // isLetter2=false;rn if (isLetter1 && isLetter2) rn // 第一个是小写,第二个是大写rn if (isLetter1_m < isLetter2_m) rn return -1;rn // 第一个是大写,第一个是小写rn else if (isLetter1_m > isLetter2_m) rn return 1;rn // 大小写情况相同rn else rn return CharacterParser.getFirstLetter(title1).charAt(0)rn - CharacterParser.getFirstLetter(title2).charAt(0);rn rn else if (isLetter1) rn return -1;rn else if (isLetter2) rn return 1;rn else rn return CharacterParser.getFirstLetter(title1).charAt(0)rn - CharacterParser.getFirstLetter(title2).charAt(0);rn rn rnrnrn[/code]rn现在的<em>问题</em>是调试时发现在判断else if (isLetter1)时, 不进入下一个判断else if (isLetter2),而直接跳到了最后一个else,有时看到isLetter1,isLetter2时空的,有时不是的。我把断点设置在System.out.println();为了保证有一个是汉字。rnrnrn如果有需要我可以把整个工程发上来。
ListView的item中button或者checkbox位置错乱问题解决思路
    2016年11月折腾一个项目,那时候使用ListView中嵌套button,给button添加setText()或者改变button的背景颜色时,在使用viewHolder的过程中,button数据发生错乱    其实网上在2015年-2016年间就出现这个<em>问题</em>“作为ListView经典<em>问题</em>之一,如果你尝试过自定义ListView的item,在上面带有一个checkbox的话,那么 当你的...
ListView发生混乱和解决办法
1.发生混乱的原因借用别人的图来解释一下:1.如上图第一屏的7条数据,也就是会产生7条数据和7个新的布局,2.当屏幕滑动第一条数据消失,复用机制就会发生了,先把item1放到recycler中,等待屏幕底部数据出现,3当item8出现时,就会复用item1的布局和数据,。也可以这样 public View getView(int <em>position</em>, View convertView, ViewG...
关于ListView的Adapter,解决ListView滚动后内容重复的问题
这些天用到了ListView,由于要用到ImageView,且图片源不是在资源里面的,也就没法用到ID了,也就不能用SimpleAdapter之类的了。只能自己改写一个Adapter,直接继承BaseAdapter。由于一开始只是在网上看了一下如何写getView这个方法,根本没有去进一步理解各个参数的含义(当然现在也没有全理解。。。),一样一来,运行没<em>问题</em>了,ListView里面数据也有了,结...
android listView adapter postion错位
 在工作中使用adapter遇到了一个<em>问题</em> if(<em>position</em>==payModes.size()-1 || <em>position</em>==payModes.size()-2){ viewHolder.content.setVisibility(View.GONE); return view; } 大家应该都和...
正确处理listviewposition
当ListView包含有HeaderView或FooterView时,传入getView或者onItemClick的<em>position</em>是怎样的,这是个值得探讨的<em>问题</em> 先列出错误的用法 定义: [java] view plain copy private MyAdapter mAdapter;          /**       * 包含
ListView里EditText错位问题
有些时候在ListView里面堆放多个EditText会造成位置<em>错位</em>的<em>问题</em>,这个代码示例会告诉你怎么解决
listView中的checkbox的错位问题
找了很多网上的解释,照着敲都感觉不对 代码如下,求指教:rnrnrn class myAdapter extends BaseAdapterrn private int index;rn private viewHolder viewholder;rn private Map map;rn public myAdapter(Map map) rn this.map = map;rn rn @Overridern public int getCount() rn return 10000;rn rn @Overridern public Object getItem(int i) rn return null;rn rn @Overridern public long getItemId(int i) rn return 0;rn rn @Overridern public View getView(int i, View view, ViewGroup viewGroup) rn index = i;rn if(view == null)rn view =View.inflate(MainActivity.this, R.layout.items, null);;rn viewholder = new viewHolder();rn viewholder.checkBox = (CheckBox) view.findViewById(R.id.cb);rn view.setTag(viewholder);rn elsern viewholder = (viewHolder)view.getTag();rn rn viewholder.checkBox.setOnClickListener(new View.OnClickListener() rn @Overridern public void onClick(View view) rn map.put(index,viewholder.checkBox.isChecked());rn rn );rn if(map.get(index))rn viewholder.checkBox.setChecked(true);rn elsern viewholder.checkBox.setChecked(false);rn return view;rn rn rn class viewHolderrn TextView textView;rn CheckBox checkBox;rn rn
Android ListView 异步加载图片错位问题
//预设一张图片 vh.img.setImageResource(R.mipmap.ic_launcher); //List集合中的图片地址 调取图片地址 final String picUrl = list.get(<em>position</em>).getPicUrl(); if(picUrl!=null){ //给控件设置一个tag值,tag值具有唯一性 vh.img.setTag(picU
关于ListView的滑动错位问题
大家有没有遇到过这样的需求:在Adapter里面写了<em>listview</em>的item展示的某个属性,有的条目有,有的条目没有。 现在假设item里面第一条展示一个头条的文字或者图片都行。 那么我们写一个TextView或者ImageView控件 然后应该在getView()方法里面写个判断 if(<em>position</em> == 1) {      holder.tv.setVisibility(Vie
android listview checkbox错位问题
初学android,做<em>listview</em>加checkbox遇到了<em>错位</em>的<em>问题</em>,在网上找到一段代码说可以解决这个<em>问题</em>,但不知道怎么用,哪位朋友帮个忙啊,指点一下rnObject b = (Object ) getItem(<em>position</em>); rn if (b != null) rn if(selectedSet.contains(b)) rn viewHolder.checkBox.setChecked(true); rn else rn viewHolder.checkBox.setChecked(false); rn rn rn rnrn里面的viewHolder是什么,selectedSet又是什么rn若谁有没<em>问题</em>的源码最好能发给我一份,601942092@qq.com,这是我的邮箱,谢谢了
listView点击事件,关于获取position的值
String inform = new String(&quot;我的信息&quot;); firstList.add(inform); String mon = new String(&quot;钱包&quot;); firstList.add(mon); String photo = new String(&quot;相册&quot;); firstList.add(photo); lvMy.setOnItemClickListener(new ...
Android ListView优化之局部刷新(更新)(非notifyDataSetChanged)
在Android开发中我们经常会用到<em>listview</em>的数据和界面刷新动作,我们每次可能会用到的都是Adapter.notifyDataSetChanged()方法。这个方法的原理是利用观察者模式对我们的数据源进行监听,当我们的数据源发生变化的时候,会调用Adapter的getView()方法进行整个界面的刷新。这样的话我们发现,getview()会调用多次,刷新了好多个不需要刷新的item,这样...
自定义ListView listView中子控件获取点击position
自定义<em>listview</em>触发事件获取view 的<em>position</em>
Android_onContextItemSelected 获取listView中item值和position
listView 代码部分就不贴出来了,这部分很简单。 主要看一下onContextItemSelected 获取item的内容 @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.setHeaderTitle(R.string.conte
Android ListView 通过指定position改变item颜色
ListView中点击每个item是可以通过setOnItemClickListener获取到View和<em>position</em>改变颜色的,也可以直接设置某个item为setSelection()选中状态来改变背景色。 但是如果我并不想设置item为选中,也不想通过点击item,而单纯只是想通过item在<em>listview</em>中的位置改改颜色呢?又或许我其它逻辑需要BlaBla。。。 通过ListView的
listviewposition的更新问题
<em>listview</em>第一次显示之后,根据关键字进行查找然后更新<em>listview</em>,最后点击item,发现更新之后的<em>position</em>还是第一次显示的那些没有改变,现在怎么更新<em>position</em>呢?rn
listview解决图片错位问题
由于<em>listview</em>中用到viewholder,复用item,会使加载图片时发生<em>错位</em>,下面是一种可以简单的避免图片<em>错位</em>的方法。 // 给 ImageView 设置一个 tag holder.img.setTag(imgUrl); // 预设一个图片 holder.img.setImageResource(R.drawable.ic_launcher); // 通过 tag 来防止图片<em>错位</em> if
ListView和CheckBox错位(解决)
关于ListView和CheckBox如果不做一些处理,会产生就想下图这样的错乱<em>问题</em> 看到了吧,在这里每一行的已选中的CheckBox都是不稳定的,随着屏幕的上下滚动,选中状态的CheckBox可以变成未选中状态, 未选中状态的也可以变成选中状态。 因此,我们在初始化adapter的时候加入了这行代码 public LvAdapter() { isChecked = new
ListView 图片丢失,错位
Listveiw 图片丢失,有时候显示有时候不显示
ListView加载图片错位
什么导致图片错乱?怎么解决?错乱的原因是异步加载以及Convertview对象复用造成的。首先给ImageView设置一个Tag,这个Tag中设置的是图片的Url,     然后在加载的时候取得这个Url要和加载的那个Position中Url对比,   如果不同就加载,相同的话就复用以前的,不加载。原理:一个屏幕显示了几条,会在下面默认绘制一条默认的,例显示了4条当第一条移出屏幕的时候会将这一条目...
Android ListView的getView()会出现多次position=0的情况
只有最后一个<em>position</em>=0时得到的对象才是用于显示的View视图对象,其他的<em>position</em>=0时得到的对象都是在测量时的临时对象,加个条件判断是不是临时的<em>position</em>=0, if(parent.getChildCount()==<em>position</em>){ //正常的用于界面展示的View对象 } else { //临时的<em>position</em>=0 }
android内存溢出问题:ListView优化
做一下简单记录,防止忘记: 1.分批(懒加载) 2.异步 3 .缓存(存sd卡 和软引用) 4.考虑压缩图片 5.杀手锏:Application中的OnLowMermery()方法  6 try catch oom
android listview 数据显示bug,各位帮忙看一下?
应用情景是这样的,点击底部选项卡,每个选项卡都会刷新<em>listview</em>,如果慢的点击一般不会出现异常,如果快速点击就会报异常,不知道什么原因,有的时候会报这个异常:java.lang.IllegalSt
ListView显示的记录错位
在中显示从数据库中读取的记录,有一两行显示<em>错位</em>。rn比如:一条记录从第二列开始显示,最后一列就显示在整个网格外面。rn这是什么原因,如何解决?
Listview图片错位+CheckBox选项错位
解决<em>listview</em>图片<em>错位</em>和选择<em>错位</em>的<em>问题</em>的Demo
listview错位思路
这里面是一种解决<em>错位</em><em>问题</em>的思路,还有些获取输入内容的思路
请教一个关于android ListView的问题
在ListView的Item中有一个Switch控件,当Item过多屏幕装不下时,如果上下滑动使未显示的Item显示,这时开始和结尾的几个Item中的Switch控件会自动改变状态,并响应状态改变的事件。如果Item越多,会自动改变的Switch控件就越多。求解决方法,谢谢!rnrn rnrn private class MAdapter extends CursorAdapterrn rn private Context context;rn private LayoutInflater mInflater;rnrn public MAdapter(Context context, Cursor c)rn rn super(context, c, true);rnrn this.context = context;rn mInflater = LayoutInflater.from(context);rn rnrn @Overridern public View newView(Context context, Cursor cursor, ViewGroup parent)rn rn View v = mInflater.inflate(R.layout.main_task_list_item, null);rn return v;rn rnrn @Overridern public void bindView(View view, Context context, Cursor cursor)rn rn final MZTask task = new MZTask(cursor);rnrn // icrn ImageView ic = (ImageView) viewrn .findViewById(R.id.main_list_action_ic);rn ic.setImageResource(task.getIcId());rnrn // action namern TextView actionName = (TextView) viewrn .findViewById(R.id.main_list_action_name);rn actionName.setText(task.getActionName(context));rnrn // timern TextView time = (TextView) viewrn .findViewById(R.id.main_list_task_time);rn time.setText(task.getTimeString());rnrn // repeatrn TextView repeat = (TextView) viewrn .findViewById(R.id.main_list_task_repeat);rn repeat.setText(task.getDayStringOfWeek(context));rnrn // switch viewrn final Switch stch = (Switch) viewrn .findViewById(R.id.main_list_task_switch);rn stch.setOnCheckedChangeListener(getCheckedChangeListener(task));rn stch.setChecked(task.state());rnrn // list morern RelativeLayout icLayout = (RelativeLayout) viewrn .findViewById(R.id.main_list_more);rn icLayout.setOnClickListener(new OnClickListener()rn rn public void onClick(View v)rn rn popUpMenu(task);rn rn );rnrn // ..rn RelativeLayout itemLayout = (RelativeLayout) viewrn .findViewById(R.id.main_list_layout_switch);rn itemLayout.setOnClickListener(new OnClickListener()rn rn public void onClick(View v)rn rn stch.setChecked(!stch.isChecked());rn rn );rnrn rnrn public OnCheckedChangeListener getCheckedChangeListener(rn final MZTask task)rn rn return new OnCheckedChangeListener()rn rn public void onCheckedChanged(CompoundButton button,rn boolean change)rn rn if (change)rn task.startTask(context, dbAdapter);rn elsern task.cancelTask(context, dbAdapter);rn rn ;rn rnrn rnrn
关于android listview分割线隐藏的问题
在xml文件中有两种方法隐藏<em>listview</em>的item之间的分割线: 1、设置Android:divider="@null"  2、android:divider="#00000000" #00000000后面两个零表示透明 在代码中有一种: .setDividerHeight(0) 高度设为0 效果图如下:
listView 整体错位
[img=https://img-bbs.csdn.net/upload/201406/05/1401946736_337948.png][/img]rnrn大家可以看到棘突效果,左面是正常的,右面是不正常的, 只要向上滑动 就会出现右面的图;rn请问有木有遇到过的呀,纠结了好久 测试机小米2a
listview错位原理
最近去面试被问到了<em>listview</em>中图片<em>错位</em>的原因,而我一直在往viewholder和tag机制上聊(被虐了),其实viewholder和tag机制只是解决图片<em>错位</em>的方法,而非产生图片<em>错位</em>的原理,回来又赶紧脑补了下~ 首先上图 图片<em>错位</em>原理: 如果我们只是简单显示list中数据,而没用convertview的复用机制和异步操作,就不会产生图片<em>错位</em>;重用convertview但没用异步
ListView 之--图片错位的处理
图片<em>错位</em><em>问题</em>是由于我们的<em>listview</em>使用了缓存convertView, 一个<em>listview</em>一屏显示九个item,那么在拉出第十个item的时候, 事实上该item是重复使用了第一个item, 也就是说在第一个item从网络中下载图片并最终要显示的时候其实该item已经不在当前显示区域内了, 此时显示的后果将是在可能在第十个item上输出图像,这就导致了图片<em>错位</em>的<em>问题</em>。
Android ListView 图片加载错位
最近遇到了使用ListView异步加载图片<em>错位</em>的<em>问题</em>,看了好多文章都没有找到我想要的。今天终于想明白并找到了解决方案,根据原因是ListView复用的原因,ViewHolder.imageView又是同一个对。 方案一:不使用ViewHolder,在getView方法中每次都去加载布局文件,这样每次的imageview对象都不同 方案二:使用ViewHolder,在getView方法中,[u]...
数据解析,listView图片错位
最近写项目的时候把Gson解析,重新分装了一下,另外就是在就解决了一下listView图片<em>错位</em>的<em>问题</em>
ListView的CheckBox错位Demo
Android ListView的CheckBox<em>错位</em>Demo
关于android的ListView优化
int(Color.parseColor(&quot;#FFFFFF&quot;)); 4.更改Item背景 一,可以通过自定义一个Adapter在父类的getView()中构建item,你可以在这个函数里设置。 二,在自定义的layout中设置viewgroup的selector    
关于android listview 的onItemClick方法
我自己写了一个adapter继承baseAdapter,能填充数据,但是我想在listView的onItemClick()中得到item中的值,这个方法里面有4个参数大概知道,但是我怎么获取之前put进去的值啊,我这里找了一个模板,但是不行,单击item以后,总在String number = map.get("number").toString();这一行报空指针,是哪里没有取出来呢?rn这是在mainActivity中使用数据rn[code=java]cardList.setAdapter(cardItemAdapter);rn //为每个列表项添加单击事件,点击进入名片详情rn cardList.setOnItemClickListener(new OnItemClickListener() rnrn @Overridern public void onItemClick(AdapterView parent, View view, int <em>position</em>,rn long id) rn ListView listView = (ListView)parent; rn @SuppressWarnings("unchecked")rn HashMap map = (HashMap)listView.getItemAtPosition(<em>position</em>); rn String number = map.get("number").toString();rn Intent intent = new Intent(MainActivity.this,CardDetailActivity.class);rn startActivity(intent);rn Log.v("abc", "你点击了ListView条目" + <em>position</em>+"电话是"+number);//在LogCat中输出信息rn rn );[/code]rn这是我写的适配器rn[code=java]package com.wisesoft.cloudwab.adapter;rnrnimport java.util.ArrayList;rnimport java.util.HashMap;rnrnimport com.wisesoft.cloudwab.R;rnimport com.wisesoft.cloudwab.bean.Data;rnrnimport android.content.Context;rnimport android.util.Log;rnimport android.view.LayoutInflater;rnimport android.view.View;rnimport android.view.ViewGroup;rnimport android.view.View.OnClickListener;rnimport android.widget.BaseAdapter;rnimport android.widget.ImageButton;rnimport android.widget.ImageView;rnimport android.widget.TextView;rnrnrnpublic class CardItemAdapter extends BaseAdapter rnrn private LayoutInflater mInflater;//得到一个LayoutInfalter对象用来导入布局rnrn /*构造函数*/rn public CardItemAdapter(Context context) rn this.mInflater = LayoutInflater.from(context);rn rnrn @Overridern public int getCount() rn rn return getData().size();//返回数组的长度rn rnrn @Overridern public Object getItem(int <em>position</em>) rn return null;rn rnrn @Overridern public long getItemId(int <em>position</em>) rn return 0;rn rn /*书中详细解释该方法*/rn @Overridern public View getView(final int <em>position</em>, View convertView, ViewGroup parent) rn ViewHolder holder;rn //观察convertView随ListView滚动情况rn Log.v("MyListViewBase", "getView " + <em>position</em> + " " + convertView);rn if (convertView == null) rn convertView = mInflater.inflate(R.layout.card_list_item,rn null);rn holder = new ViewHolder();rn /*得到各个控件的对象*/rn holder.alpha = (TextView) convertView.findViewById(R.id.alpha);rn holder.name = (TextView) convertView.findViewById(R.id.name);rn holder.number = (TextView) convertView.findViewById(R.id.number);rn holder.headImg = (ImageView)convertView.findViewById(R.id.headImg);rn holder.bt_call = (ImageButton) convertView.findViewById(R.id.bt_call);rn convertView.setTag(holder);//绑定ViewHolder对象rn rn elsern holder = (ViewHolder)convertView.getTag();//取出ViewHolder对象rn rn /*设置TextView显示的内容为我们存放在动态数组中的数据*/rn holder.alpha.setText(getData().get(<em>position</em>).get("alpha").toString());rn holder.name.setText(getData().get(<em>position</em>).get("name").toString());rn holder.number.setText(getData().get(<em>position</em>).get("number").toString());rn holder.headImg.setImageResource(R.drawable.mn);rn holder.bt_call.setImageResource(R.drawable.call);rn if(<em>position</em>!=0&&!(getData().get(<em>position</em>).get("alpha").equals(getData().get(<em>position</em>-1).get("alpha"))))rn holder.alpha.setVisibility(View.VISIBLE);rn /*为Button添加点击事件---打电话*/rn holder.bt_call.setOnClickListener(new OnClickListener() rn rn @Overridern public void onClick(View v) rn Log.v("abc", "你点击了按钮" + <em>position</em>);//打印Button的点击信息rn rn rn );rn rn return convertView;rn rn rn /*添加一个得到数据的方法,方便使用*/rn private ArrayList> getData()rn rn ArrayList> listItem = new ArrayList>();rn /*为动态数组添加数据*/rn int card_num = Data.cardList.size();rn for(int i=0;i map = new HashMap(); rn map.put("alpha", Data.cardList.get(i).getHeadSpell());rn map.put("number", Data.cardList.get(i).getTelNumber()); rn map.put("name", Data.cardList.get(i).getName()); rn listItem.add(map); rn rn return listItem;rn rn rn rn public final class ViewHolderrn public TextView alpha;rn public TextView number;rn public TextView name;rn public ImageView headImg;rn public ImageButton bt_call;rn rn rnrnrn[/code]
关于Android ListView的优化问题
在Android开发中经常遇到<em>listview</em>界面卡顿的现象,很大部分原因是<em>listview</em>上写了太多控件导致的。百度了一下,大多数对<em>listview</em>的优化都是千篇一律,无非就是利用<em>listview</em>的重用控件的机制,新建一个ViewHolder类,将<em>listview</em>的控件都包含进来,然后在getview方法的时候判断一下如下,converView是否为空,将holder存进converView的t
ScrollView嵌套Listview后,listview的图片错位
项目需要,要在scrollview中嵌套<em>listview</em>,网上有大神的解决方案是,重写listveiw的onMeasure方法,rn@Overridern public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) rnrn int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,rn MeasureSpec.AT_MOST);rn super.onMeasure(widthMeasureSpec, expandSpec);rn rn完美解决<em>问题</em>,但是后来发现,listView的第一个item图片有<em>错位</em>的情况,在网上搜索<em>问题</em>后,大部分解决方法是,为imageview设置一个TAG,在图片下载完成后对比tag内设置的图片url,如果相同则设置图片,如果不相同则不处理。但是目前测试这个方法是解决不了当前到的<em>问题</em>的。我新写了个demo重现了这个<em>问题</em>,发现就是重写的ListView的onMeasure方法的<em>问题</em>,我吧这个方法注释掉,运行,效果是listView不能滑动了,但是item的图片没有<em>错位</em>了。本人新手,实在是不知道怎样解决了,网上没有这个相同的<em>问题</em>,麻烦大神们帮忙看下吧!!
ListView中解决图片错位问题
1、给ImageView设置一个tag,并预设一个图片。 2、当item1比item8图片加载的快时,你滚下去使item8可见,这时ImageView的tag被设成了item8的URL,当item1下载完时,由于item1不可见,现在的tag是item8的URL,所以不满足条件。虽然下载下来了,但不会设置到ImageView上,tag标识的永远是可见View中图片的URL。
总结:listView等的优化和图片错位问题
ListView,RecyclerView 用过很多,写起来也没什么难度,但最近面试时被问及这个<em>问题</em>,发觉答的都不全面,现总结下最全面的优化方案如下: ContentVeiw的复用。在RecyclerView中强制必须复用。listView中就要自己实现,<em>listview</em>的复用机制就是条目很多的时候,只会创建满一屏的条目,当滑动的时候不会再去创建新的view,而是复用已经滑出屏幕的view,对...
Listview、GridView反复调用position=0的问题
在使用Listview 、GridView的过程中会发现 adapter的getView方法中会创建好多次<em>position</em>=0的控件,这是为什么呢,下面让我们从源码部分分析一下: GridView 和Listview都是继承AbListview的,那么我们来看看Ab<em>listview</em> 其中 @Override protected void onMeasure(int widthMeasur
求高手.ListView中Position问题!
我的ListView中有大量内容.rnrn滑动到底部,back返回桌面.rnrn然后<em>listview</em>中内容的又到了顶部.rnrn问:在返回桌面时,通过什么方法,可以记录当前<em>listview</em>中的<em>position</em>.rn 然后在回到Activity时,又可以跳转到<em>position</em>位置.
安卓ListView图片异步加载错位的处理
<em>问题</em>与现象使用安卓<em>listview</em>加载图片时,如果异步加载,经常会出现加载乱序的<em>问题</em>。这种<em>问题</em>多是由于convertView复用造成的。也就是说,当一个条目移动到屏幕外面时,convertview已经给了其他条目,而此时convertview中上一个条目的图片尚未加载完毕,这样,当图片加载完毕后,我们得到的图片其实是其他条目中的。当然这只是一种现象,在实际情况下,加载图片<em>错位</em>,闪烁,或者下载了但是没
关于 android listview 加载数据错位(错乱)问题
一般的关于Adapter中getView的写法不外乎以下形式: @Overridepublic  View getView(int <em>position</em>, View convertView, ViewGroup parent)  {   ViewHolder holder;   if (convertView == null)  {   convertView = mLayou
【Android】ListView加载网络图片(解决图片错位问题
【关键词】 ListView 图片错乱 网络加载 【<em>问题</em>】 在ListView中使用图片作为头像时,发生图片<em>错位</em>;使用圆角图片; 【效果图】 【分析】 · 见源码注释; 【解决方案】 使用方法 holder.putImg(R.id.iv_group_icon, group.getSmallIcon(), true) 【代码】 结合通用Ada
android listview 加载图片错乱(错位)
NULL 博文链接:https://1002878825-qq-com.iteye.com/blog/1610006
ListView GridView图片错位处理
在android开发中,显示大量文件,遇到加载图片过程中会发生图片<em>错位</em>显示的现象。 处理方法: 1.在适配器adapter中复用适配器convertview,示例代码if (convertView == null) { holder = new ViewHolder(); convertView = LayoutInflater.f
listview里的textviw文本错位
![图片说明](https://img-ask.csdn.net/upload/201502/09/1423485180_597671.png)![图片说明](https://img-ask.csdn.net/upload/201502/09/1423485189_315593.png)n如图所示:一开始布局没乱,但是输入数据后就会发生错误,我想实现的是,输入的新数据不会影响到其他数据的位置.该怎么解决?n部分xmln n item------n nn n nn nn nn n
ListView异步加载图片--图片缓存和错位问题解决方案
<em>问题</em>1: 加载太多的图片很容易造成OOM异常。一、图片缓存方法1:使用二级缓存 ->自己维护一个缓存区 只要有足够的内存,就一直保持对象,直到发现内存吃紧且没有Strong Ref时才回收对象。 所以可以这么做:map里面的键是用来放图片地址的,既可以是网络上的图片地址,也可以SDcard上的图片地址, map里面的值里面放的是持有软引用的Bitmap.private Map<St
Listview 点击偶尔会错位
我的ListView每一行都放了一个图片,一个TextView,其中图片是另一线程从server取,然后通知UI线程加载的,TextView是可点击的,点击后会变为两个button(同时其它为两个button的item恢复为textview),然后再点击button会把该button所在item从<em>listview</em>上删除掉。rnrn一个屏幕可以显示出五行记录,令我头疼的是,偶尔会出现点击了一个item的textview时,其他item的textView变成2个button,而不是我点击的那个。这种奇怪的现象不是每次都能出现的。rnrn  哪位大侠也遇到过这样的<em>问题</em>,知道怎么解决的请指教,thanks!rn
ListView数据错位常见问题与解决方案
<em>问题</em>一:ListView中,复用机制导致EditView的输入数据<em>错位</em>?解决方法:在Adapter调用getView时为EditView设置相应的值1、默认清除所有EditView的焦点,即调用clearFocus()方法;holder.et.clearFocus();2、保存每个Item中EditView所对应的输入值,并在Adapter调用getView时进行setText()。holder....
android中ListView异步加载图片错位
android中ListView异步加载图片时的图片<em>错位</em><em>问题</em>解决方案
获取listview每一行的position
在没有触发任何事件的情况下能获得<em>listview</em>每一行的<em>position</em>吗?我想单独控制某一行,改变背景。请问应该怎么做啊
ListView显示异常, 图片错位
我使用的是PullToRefreshListView,当第一次进入Activity时,显示异常,n其中每个item中我都放了个ImageView,最开始图片<em>错位</em>了,但我下拉刷新后,n却又正常显示了,这是怎么回事啊 哪位大神能告诉小弟怎么办
从源码看ListView有HeaderView时onItemClick里的position错位问题
listView = (ListView) findViewById(R.id.test_lv); headerView = LayoutInflater.from(this).inflate(R.layout.activity_<em>position</em>_test_headerview, null); adapter = new ArrayAdapter(this, an
关于android ListView倒计时遇到的一些问题
马自达电商项目已经开发接近尾声马上进行提测了,近期遇到一个说大不小,说小但也令人纠结的一个<em>问题</em>,今天终于解决,记录一下避免以后走弯路 首页一共四个倒计时,结构为 ActivityFragmentPulltoRefreshListViewGridView <em>问题</em>一: 每个item开了一个倒计时来更新自己,每次更新自己使用notifyDataSetChanged()来更
关于androidlistview的上拉刷新,下拉加载更多
前段时间做项目要用到<em>listview</em>的上拉刷新,下拉加载更多,在网上找了很多资源进行了修改,最终达到了我的要求,特地来分享
position:relative 和position:absolute的问题
父级用<em>position</em>:relative 子级用<em>position</em>:absolute;那么我在子级用了absolutern 在子级的子级用什么呢。还是absolute吗?absolute的子级能否再用relative。rn absolute的父级有多个relative是以谁为标准。新手求助。还有一般页面布局都是怎么布局的。我现在弄个嵌套都要定位半天。感谢大佬!!!
POSITION的问题
有些程序要用到POSITIONrnrnrnvc 这样定义POSITION是什么意思啊 ~~rnstruct __POSITION ;rntypedef __POSITION* POSITION
ListView异步加载图片出现图片错位的解决方案
private XListView x<em>listview</em>; private int index = 1; /** * <em>listview</em>中view复用并异步加载图片时,有可能滚出屏幕的图片加载过慢, * 导致回收利用的view会显示前面还没有加载完的图片,这样就出现了图片<em>错位</em> */ @Override protected void onC
ListView上下滑动时 单选错位 的解决
遇到过的ListView在滑动时数据错乱的几种情况: Listview滑动后,图片(/背景色)重复混乱(非异步加载时) Listview选取checkbox后,再滑动时,出现checkbox选取<em>错位</em><em>问题</em> ListView异步加载图片时,图片显示重复错乱 CheckBox: @Override public View getView(final int posit...
ListView加载图片处理错位的几种方法、图片缓存、listView简单动画
ListView加载图片处理<em>错位</em>的几种方法、图片缓存、listView简单动画
listview如何取得指定position的view。
[img=http://hi.csdn.net/attachment/201110/7/10054642_1317972111Y1VT.png][/img]rn[img=http://hi.csdn.net/attachment/201110/7/10054642_1317972112iy4Y.png][/img]rn我想在点击该item时候,该item变色,来表示处于选中状态。rn原本我代码是这样的:<em>listview</em>.setOnItemClickListener(new OnItemClickListener () rnrnpublic void onItemClick(AdapterView arg0, View view, int <em>position</em>,rnlong arg3) rnindex = <em>position</em>;rnrnfor (int i = 0; i < DataList.size(); i ++) rn<em>listview</em>.getChildAt(i).setBackgroundColor(Color.BLACK);rn//设置被选中状态的颜色,当取消选中的时候,又变回黑色rnrnrnview.setBackgroundColor(Color.GRAY);rnrnrn这样的<em>问题</em>是,处于隐藏状态的item当用滚动条拉到可见状态了,就getChildAt()就不管用了,或者干脆出异常了。rn我用的SimpleAdapter生成的<em>listview</em>。rn有没有什么办法,拿到指定的item。rn rn );rn
ListView中position与数据库主键不一致
我根据<em>listview</em>中setonitemclickListener()方法,点击弹出是否删除Dialog选项框。点击删除item和对应的数据库数据,因为我是根据<em>listview</em>的<em>position</em>来删除的,当我删除后再添加,<em>position</em>不变1 2 3,可是数据库id变了1 2 4,当我再次删除第三条数据就无效了,怎么解决主键与<em>position</em>不一致<em>问题</em>?
listview,gridview定位到当前position,并可见。
引言 一个简单的小方法,记录下,方便以后查看。 具体使用场景 我们在进行 音乐,视频开发的时候,经常遇到很多种方式的切歌,切换视频。比如控制栏中进行切换,亦或者音乐视频播放完自动切换,或者滑动切换。在或者列表选择切换,这里暂时排除列表选择切换,毕竟这个是可见的选择项。 可能我们列表DATA 数据很多,一时间随机播放或者切换 导致找不到当前的 media 的 item 的 <em>position</em>。我们的需...
如何通过自定义Adapter获取listviewposition
这个暑假学校安排一个月的实训,内容就是,一个团队开发一个app,相信对于有经验的人来说是很简单的事,但是我在此之前从来没有接触过Android,java基础也接近于0,所以开发过程中遇到了很多<em>问题</em>,刚好项目经理要求我们写写技术总结,就把写好的东西发到这里,当作记录吧。 1、 如何在前后端之间进行数据的传输 这是最初摆在我面前的一道难题,具体来说<em>问题</em>是这样的:如何获取到手机前端中的数据?如何
求助,listView之中的position的精确定位问题
我自己写了个类似备忘录的应用,在添加备忘录后,会在listView上按行显示内容。点击每条备忘录会转到相应备忘录的设置界面,是用listView的<em>position</em>来定位数据库中相应数据的id的。功能之中有一个删除功能,删除当前正在编辑的备忘录,通过传进来的id调用delete方法。可是我发现删除只能是按顺序,从最新添加的备忘开始删除,才能全部删除完毕,如果从任意一条开始删除,这条之后的备忘再单击就会串到其他的备忘录数据。最后肯定会有一条备忘录在listView中删不掉(<em>position</em>和id已经脱节)。怎样才能任意删除又不影响其他list的正常功能?下面是相关代码:[code=java]//为ListView添加事件监听rn listView.setOnItemClickListener(new OnItemClickListener() rn @Overridern public void onItemClick(AdapterView av, View v, int <em>position</em>g,rn long id) rn // TODO Auto-generated method stubrn //通过listView的<em>position</em>定位数据库中的IDrn Uri uri = ContentUris.withAppendedId(Tasks.CONTENT_URI, id+1);rn Cursor cursor = managedQuery(uri, PROJECTION, null, nullrn , Tasks.DEFAULT_SORT_ORDER);rn //向操作界面传送该条备忘录的相关内容rn if(cursor.moveToNext())rn int id1 = cursor.getInt(0);rn String content = cursor.getString(1);rn String created = cursor.getString(2);rn int alarm = cursor.getInt(3);rn String date1 = cursor.getString(4);rn String time1 = cursor.getString(5);rn int on_off = cursor.getInt(6);rn Bundle b = new Bundle();rn b.putInt("id", id1);rn b.putString("content", content);rn b.putString("created", created);rn b.putInt("alarm", alarm);rn b.putString("date1", date1);rn b.putString("time1", time1);rn b.putInt("on_off", on_off);rn Log.v("---time and date---",date1+"/"+time1);rn intent.putExtra("b", b);rn intent.setClass(DiaryActivity.this, WriteDiaryActivity.class);rn startActivityForResult(intent,NOT_NEW);rn Log.v("----DiaryActivity----","打开原有的保存内容");rn rn rn );[/code]rnrn下面是删除功能的相关代码(删除功能在按钮上实现,位于操作具体备忘录数据的界面)rn[code=java]deleteBn.setOnClickListener(new OnClickListener() rn rn @Overridern public void onClick(View arg0) rn // TODO Auto-generated method stubrn //从上面的界面接受传送的数据rn Intent intent = getIntent();rn if(intent != null)rn Bundle b = intent.getBundleExtra("b");rn if( b != null)rn int id = b.getInt("id");rn Uri uri = ContentUris.withAppendedId(Tasks.CONTENT_URI, id);rn getContentResolver().delete(uri, null, null);rn finish();rn elsern //显示错误对话框rn showSaveErrorDialog(DELETE_ERROR); rn rn rn );[/code]rnrn请教相关大神,怎么实现?谢谢!!!
android listview 异步加载图片并防止错位
tView且有异步操作. 如果不重用convertView不会出现<em>错位</em>现象,重用convertView但没有异步操作也不会有<em>问题</em>。 我简单分析一下: 当重用convertView时,最初一屏显示7条记录,getView被调用7次,创建了7个convertView.当Item1划出屏幕,Item8进入屏幕时,这时没有为Item8创建新的view实例,Item8复用的是Item1的view如果没有异步不会有任何<em>问题</em>,虽然Item8和Item1指向的是同一个view,但滑到Item8时刷上了Item8的
android listview 数据加载错乱、错位、重复
前言:android的<em>listview</em>,写吐了的东西,尤其它的适配器,当遇上相对复杂的场景的时候,还是容易出<em>问题</em>的,例如<em>listview</em>嵌套<em>listview</em>这样的场景、对item中子控件频繁的做一些操作等,可能会遇到数据加载错乱、<em>错位</em>等<em>问题</em>。其实这个时候,你怎么加断点加log打印都是没用的,你会发现数据都是正常的。正文:首先必须要明白<em>listview</em>的工作原理:android为了优化<em>listview</em>
ListView 滑动时 图片乱跳错位
<em>问题</em>描述: 因为 adapter, 中的convertView 复用滑出的View, 导致每次,都会开启线程从网络获取图片 设置给相同的ViewImage,因此一个ImageView会被设置多次图片  当ListView 停止滑动的时候 ImageView就会不定的更换图片。 解决方案: 给converView 设置tag为图片的URL setTag()  当图片从网络上获取下来
解决Android ListView滚动布局错位
ListView对应多个布局的实现方式。ListView滚动中布局错误的解决方案,博客中对于的介绍博文
ListView异步加载图片时出现错位的解决方案
1. 解决方案: 通过上面的分析我们知道了出现错乱的原因是异步加载及对象被复用造成的,如果每次getView能给对象一个标识,在异步加载完成时比较标识与当前行Item的标识是否一致,一致则显示,否则不做处理即可。 原理:首先给ImageView设置一个Tag,这个Tag中设置的是图片的url,然后在加载的时候取得这个url和要加载那<em>position</em>中的url对比,如果不相同就加载
ListView,GridView,RecyclerView滑动错位的终极解决办法
直接讲重点! 假如你的item布局里面包含但不限于这些东西:textView,ImageView,CheckBox,Button... 你一定遇到过滑动列表时item里面的控件<em>错位</em>,该出现的地方不出现,不该出现的地方反而蹦出来的情况。 我也在网上看过很多解决办法,很多说给什么控件设置一个tag呀之类的,看着我都觉得麻烦,其实解决滑动<em>错位</em>并不需要设置什么tag,
listview分组实现、性能优化及错位解决
<em>listview</em>是Android开发中最常见的组件之一。在项目开发中,经常需要将<em>listview</em>分组。关于<em>listview</em>分组的原理可以参考android之<em>listview</em>分组实现,简单说就是:将分组的内容和分组的标题按顺序统一放在一个list中,根据list中的内容决定展示分组标题还是分组内容。本文主要讨论分组<em>listview</em>优化的<em>问题</em>,第一部分“<em>listview</em>分组实现”只做一个简单介绍,代码详
listview滑动时数据错位解决办法
当滑动<em>listview</em>时,在滑动回去发现数据位置<em>错位</em>了.如何解决呢? 下面这段代码运行时是<em>错位</em>状态 @Override public View getView(int <em>position</em>, View convertView, ViewGroup viewGroup) { ViewHolder holder; if(convertView==n
ListView 滑动时数据重复错位解决
ListView滑动时数据重复解决办法
初学者电脑组装维修主机故障资料免费下载
初学者电脑组装维修主机故障资料免费下载,记得加分呀! 相关下载链接:[url=//download.csdn.net/download/jinmaliyongtao/2110323?utm_source=bbsseo]//download.csdn.net/download/jinmaliyongtao/2110323?utm_source=bbsseo[/url]
Aws.exe下载 最新版V3.0 绿色版下载
Aws.exe下载 最新版V3.0 绿色版 相关下载链接:[url=//download.csdn.net/download/junjun_js/3694389?utm_source=bbsseo]//download.csdn.net/download/junjun_js/3694389?utm_source=bbsseo[/url]
MS-DOS操作系统结构分析系列教材之二__COMMAND结构分析教程下载
不用我多讲了 吗 研究dos内核必备 好不容易找到的 pdg转成了pdf的 大家给点力啊 相关下载链接:[url=//download.csdn.net/download/sounce/3887479?utm_source=bbsseo]//download.csdn.net/download/sounce/3887479?utm_source=bbsseo[/url]
我们是很有底线的