如何在OnItemSelected()中更新引用?

时间:2013-07-29 08:56:59

标签: android listener

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

4 个答案:

答案 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;