2014-02-10 249 views
0

我使用默认的Android项目,并尝试找到一种方法来更改已选定列表视图项目的背景颜色。我知道这是通过选择器完成的。我试图模仿来自全息主题的原始外观和行为,只是改变其中的颜色,但我失败了。有人可以向我解释如何获得listview项目的原始外观和感觉(longclick fade等),只是将颜色从这个奇怪的蓝色改为其他东西?更改所选ListView项目的颜色

我必须从android sdk复制到我的项目以及在哪里更改所选颜色?

+0

感谢所有的答案,我已经知道如何改变的背景项目在我的自定义适配器。但我的应用程序基于默认的Android项目(两个窗格),此项目使用左侧窗格中列表项的状态。我对状态如何改变以及效果等方面感到非常高兴,只是选择的颜色是我不喜欢的。覆盖我自己的代码在这里似乎不是正确的方法。所以我试着改变为这个默认项目创建的选择器,但我失败了。我以为我从sdk那里得到一个副本,只是改变颜色而不会丢失任何样式等等,但是从哪里来? – Digit

回答

0

假设您使用的是自定义ArrayAdapter,则必须在getView()方法的第二个参数上定义onClick()侦听器。通常它被称为convertView,但不一定。

这个第二个参数非常模糊地说,引用了每一行的布局。所以,当你想改变你行的背景,只是在第二个参数添加onClickListener(),并更改背景:

convertView.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
    convertView.setBackground(your_new_background); 
    } 
}); 
+0

嗨,我知道。在这种情况下,它不是我想要做的。不是选择器底层设置颜色,然后我再次改变它?听起来对我来说是错误的。 – Digit

0

活计,你可以使用自定义适配器列表视图的。 在自定义xml文件中,你可以改变everthing。 对于细节例如遵循here

+0

嗨,我知道这一切。在这种情况下,它不是我想要做的。看到我上面的评论 – Digit

0

我不知道你问什么,但watever我明白我想你想要像

listview.setOnItemClickListener(new OnItemClickListener(){ 

@override 
public void onItemClick(AdapterView<?> parent, View view, int position, long id){ 

     .............................. 
      view.setBackground("Your color"); 
    } 
}); 
+0

嗨,我知道。在这种情况下,它不是我想要做的。看到我上面的评论 – Digit