listview拖动优化问题 什么类型的数据?还有麻烦贴一下adapter的代码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public final class ViewHolder { TextView expr; TextView result; } // @Override public View getView(int position, View convertView, ViewGroup parent) { View view; ViewHolder viewholder; if (convertView == null) { convertView = mInflater.inflate(R.layout.history_item, parent, false); viewholder = new ViewHolder(); viewholder.expr = (TextView) convertView.findViewById(R.id.historyExpr); viewholder.result = (TextView) convertView.findViewById(R.id.historyResult); convertView.setTag(viewholder); } else { viewholder = (ViewHolder) convertView.getTag(); } HistoryEntry entry = mEntries.elementAt(position); String base = entry.getBase(); Log.v("lc", "base--"+base); if(!base.equals("")&&base.length()>0){ viewholder.expr.setText(base); try { String res = mEval.evaluate(base); viewholder.result.setText("= " + res); } catch (SyntaxException e) { viewholder.result.setText(R.string.error); } }else{ convertView.setVisibility(View.GONE); } return convertView; } 那你 在 if else 里 都打印一下 看看程序走哪个分支 打印过了,没有走else,上下滑动几次就这样了 if(!base.equals("")&&base.length()>0){convertView.setVisibility(View.Visiable); viewholder.expr.setText(base); try { String res = mEval.evaluate(base); viewholder.result.setText("= " + res); } catch (SyntaxException e) { viewholder.result.setText(R.string.error); } }else{ convertView.setVisibility(View.GONE); }照着这个改吧,加一行代码 View.VISIBLE中间那行打印的,数据都有,就是没显示 View.VISIBLE上个恢复写错了 太感谢了,确实是这个原因,刚才忘记说了每次滑到最后一行会走else的,谢谢哈 刚才忘记说了每次滑到最后一行会走else的,就是这个原因 convertView.setVisibility(View.GONE);。。也谢谢你 定义一个map保存已经显示过的view.map.put(positon,convertview);如果map中包含view,则convertview=map.get(postion);viewholder = (ViewHolder) convertView.getTag();这样就不出现重复刷新了. 往RelativeLayout动态加入ImageView的问题 android应用如何备份 OpenGL ES运行出错 如何动态改变android应用图标 点击spinner触发系统消息栏,如何解决? 关于用nexus 4 开发BLE应用过程数据写入后自动断开的问题 安卓程序退出后实现确保后台继续运行? Android—EditText重新获取焦点后无法编辑 android音乐播放器播放列表如何实现? 收藏功能 JNI内存泄漏 大家看一下 我这么在Android 中使用byte是否有隐患
TextView expr;
TextView result;
}
// @Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
ViewHolder viewholder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.history_item, parent, false);
viewholder = new ViewHolder();
viewholder.expr = (TextView) convertView.findViewById(R.id.historyExpr);
viewholder.result = (TextView) convertView.findViewById(R.id.historyResult);
convertView.setTag(viewholder);
} else {
viewholder = (ViewHolder) convertView.getTag();
}
HistoryEntry entry = mEntries.elementAt(position);
String base = entry.getBase();
Log.v("lc", "base--"+base);
if(!base.equals("")&&base.length()>0){
viewholder.expr.setText(base);
try {
String res = mEval.evaluate(base);
viewholder.result.setText("= " + res);
} catch (SyntaxException e) {
viewholder.result.setText(R.string.error);
}
}else{
convertView.setVisibility(View.GONE);
}
return convertView;
}
convertView.setVisibility(View.Visiable);
viewholder.expr.setText(base);
try {
String res = mEval.evaluate(base);
viewholder.result.setText("= " + res);
} catch (SyntaxException e) {
viewholder.result.setText(R.string.error);
}
}else{
convertView.setVisibility(View.GONE);
}
照着这个改吧,加一行代码
map.put(positon,convertview);
如果map中包含view,则
convertview=map.get(postion);
viewholder = (ViewHolder) convertView.getTag();这样就不出现重复刷新了.