2014-05-02 176 views
3

我知道如何使用bindView在listview上设置颜色。所以,当它创建时,(或滚动到屏幕上)颜色设置...更改按钮上的listview背景颜色按

但是,我如何通过现有的意见,而不破坏和重新创建整个事情。

阿卡,如果我按一个按钮,我想强调的是在光标第二场屏幕项目(列表视图)的所有现有= False

Item 1, True 
Item 2, True 
Item 3, False -- Should highlight Green on button press. 
Item 4, True 

编辑:

目前我这样做,但它需要刷新游标。

int currentPosition = lv.getFirstVisiblePosition(); // Obtain where list is 
    lv.setAdapter(null); 


    Cursor cursor = SqlDB.getCursor(); 
    adap = new MyAdaptor(this, R.layout.list, cursor, columns, to, true, 0); 

    lv.setAdapter(adap); 
    lv.setSelection(currentPosition); // Move back to where it was 
+0

您使用的是自定义适配器吗? –

+0

@ShivamVerma是的,它扩展了'SimpleCursorAdapter',但只是一个自定义布局。 – Mcloving

回答

3

在您需要调用adapter.notifyDataSetChanged(),这将刷新列表视图,进而数据将您喜欢的颜色设置为在光标的第二场项目按钮的onClick事件== false

+0

谢谢。如果你看到我的问题,你可以看看我在做什么。我现在已经删除了两个'SetAdapter',并用您的建议替换,重新获取光标。它从你的答案发生在我身上。我可以用我的全局'adap'调用'setAdapter',而不必去DB。我将删除位置部件,以查看是否需要。 – Mcloving

+1

并快速跟进..我不需要设置位置,因为没有任何改变。你提到的这个方法太棒了! :)我知道它存在,并且之前使用过它,但我从未意识到它可以做到这一点。 – Mcloving