【发布时间】:2015-05-12 10:27:32
【问题描述】:
我在小屏幕设备上的 ListView 存在问题,当我们单击列表的第一项并滚动到末尾时,我们会看到最后一项以第一项的颜色被选中。
我的适配器代码的一部分:
public static class ViewHolder {
TextView mItemTitleView;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
viewHolder = new ViewHolder();
if (convertView == null) {
convertView = mInflater.inflate(this.mLayoutId, parent, false);
viewHolder.mItemTitleView = (TextView) convertView.findViewById(R.id.itemtitle);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
Typeface futura_font = Typeface.createFromAsset(getContext().getAssets(), "fonts/Futura.ttf");
viewHolder.mRadioNameView.setTypeface(futura_font);
viewHolder.mItemTitleView.setText("Something");
return convertView;
}
测试设备:Android 2.3.7 上的三星 Galaxy S2。
截图:
- 列表顶部和第一项被选中:http://i.stack.imgur.com/ClDZe.jpg
- 滚动后,我们看到最后一项被选中但我们没有点击它:http://i.stack.imgur.com/mU0ak.jpg
【问题讨论】:
-
当item被点击时你会做什么?也发布该代码
-
您的点击事件在哪里?还要在
if(convertView==null) {条件下初始化您的ViewHolder对象。 -
您使用什么方式显示项目选择
标签: java android xml listview android-listview