调用notifyDataSetChanged后是否可以更新OnItemSelected中的引用? e.g
ImageView onFront;
gallery.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
onFront = (ImageView) view;
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
我正在使用onFront来旋转图像,但在我调用notifyDataSetChanged之后 - 我不能。
答案 0 :(得分:2)
让您的代码记住点击了哪个视图。
gallery.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
view.setTag(postion);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
然后在适配器的getview中使用此位置
int pos = (Integer)view.getTag();
if(pos == position){
//Make your change in view to make it look different
}
答案 1 :(得分:1)
要更新参考并将其反映到视图中,您应致电notifyDataSetChanged()
。这是告诉适配器某些内容已发生变化,谁在控制视图的唯一方法。
答案 2 :(得分:1)
尝试在方法后调用此方法:
listview_adapater.invalidate();
答案 3 :(得分:1)
尝试像这样制作onFront静态。
private static ImageView onFront;