1

调用 notifyDataSetChanged 后是否可以更新 OnItemSelected 中的引用?例如

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 之后 - 我不能。

4

4 回答 4

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
}
于 2013-08-08T13:16:18.703 回答
1

要更新引用并将其反映到视图中,您应该调用notifyDataSetChanged(). 这是告诉您的适配器某些事情发生了变化,谁在控制视图的唯一方法。

于 2013-07-29T09:06:35.087 回答
1

尝试在您的方法之后调用此方法:

listview_adapater.invalidate();

于 2013-08-07T14:01:23.767 回答
1

尝试使 onFront 像这样静态。

private static ImageView onFront;
于 2013-08-08T10:03:22.173 回答