2012-08-24 79 views
2

我创建了一个自定义适配器具有自定义视图列表视图。现在如何在ListView onClick中更改Android项目的样式?

我想改变列表视图项的背景(布局的背景色中的项目的自定义视图),因为我按下一个按钮。

它甚至有可能?是否可以一次更改所有的listview项目,或者我必须逐个更改?

+0

访问线程http://stackoverflow.com/questions/12107440/onlistviewitemclick-view-argument-refer-to-multiple-listitems/12107917#12107917 –

+0

正如我所说。我没有点击该项目。我点击一个按钮。因此,我没有收到“视图”实例的项目。 –

回答

0

尝试这样的事情

ListView mView; 
... 
int c = mView.getChildCount() 
for(int i = 0; i < c; i++){ 
    View v = mView.getChildAt(i); 
    v.setBackgroundColor(color); 
} 

据我所知是没有办法来为所有子视图的颜色。如果可以的话,仍然会在后台对所有视图进行迭代。

+0

是的。我也在考虑这个问题。我想这是唯一的选择。 –

0

如果你已经使用“customview”然后就绑定在自定义适配器的customview的元素(如:按钮),并设置的onclick听众为他们夸大了“listItems中”。

你可以参考这个:preserve state of elements inside listview's each row

在我的自定义适配器,我已经绑定TextView的1和2个按钮我的自定义视图,然后点击监听器来实现。

我希望这将是有益的。

0

或者以遍历所有的孩子,你可以在粘合剂中的颜色变化,并迫使ListView控件(通过适配器的数据变化的方法)来重新绑定物品。这样,你不会在ListView的视图层次结构中插入内容,这通常被认为是非常糟糕的做法。

+0

你能举个例子吗? –

相关问题