我正在尝试突出显示ListView
(可触摸界面)中的项目。目的是用户将触摸图像,它将选择ListView
中的项目将其移动以显示(它不会同时显示在屏幕上),然后突出显示{ {1}}通过更改项目视图的背景颜色与图像上的位置相关。我有一个自定义ListView
,其中包含每个项目的视图。
从图像我可以得到ListAdapter
中项目的位置。从此我可以致电ListView
。这会将项目置于列表顶部。但是我现在想要获得这个项目的视图;我已经尝试了listView.setSelection(selectedPos)
但是看起来在列出布局之前这是不可用的(我正在响应图像上的点击)所以我不能使用它。
我尝试的其他任何东西都没有用 - 我想做的就是做getFirstVisiblePosition()
这样的事情,但我找不到办法。因为我处于可触摸模式,所以无法使用“已选择”。
看似简单的事情 - 我浪费了一天;任何帮助将不胜感激!
干杯,
尼尔
答案 0 :(得分:1)
不应该listView.getChildAt(position)
做你想做的事吗?
答案 1 :(得分:0)
尝试为列表视图创建自己的自定义适配器。例如:
private class CustomAdapter extends ArrayAdapter<RowData> {
public CustomAdapter(Context context, int resource, List<RowData> objects) {
super(context, resource, objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//convertView holds the view for each item.
TextView txt = (TextView)convertView.findViewById(R.id.button);
//do some other stuff with the views
return convertView;
}
}
答案 2 :(得分:0)
我通过以下方式解决了这个问题:
然后我修改GetView返回的呈现视图
这似乎是最简单的选择。