2012-10-25 63 views
1

我有一个自定义适配器列表视图。在每一行中,我有2个文字浏览和一个按钮。我希望当我点击一个项目来突出显示它并保持突出显示,直到我点击另一个项目。我试图用列表选择器来做,但没有成功。然后我试着这样做:自定义列表视图适配器行选择

public void onClick(View v) { 
    ListView lvItems = context.lvLists; 
    for (int i=0; i < lvItems.getChildCount(); i++) 
    { 
     lvItems.getChildAt(i).setBackgroundColor(Color.BLACK);   
    } 
    v.setBackgroundColor(Color.parseColor("#555555")); 

这是listview每一行的onclick。它的作品,但我看到,当我向下滚动有更多的项目选择(我没有选择)。解决方案?

回答

0

您应该实现视图持有者模式,然后在持有者代码中,您可以拥有一个保存该项目当前状态的(布尔型)变量(突出显示或不突出显示),相应地更改背景颜色。

+0

ViewHolder模式是不是存储的值,它只是用来装到观点的引用,使您不必调用getViewById每次适配器重新使用视图做。 –

相关问题