我使用默认的Android项目,并尝试找到一种方法来更改已选定列表视图项目的背景颜色。我知道这是通过选择器完成的。我试图模仿来自全息主题的原始外观和行为,只是改变其中的颜色,但我失败了。有人可以向我解释如何获得listview项目的原始外观和感觉(longclick fade等),只是将颜色从这个奇怪的蓝色改为其他东西?更改所选ListView项目的颜色
我必须从android sdk复制到我的项目以及在哪里更改所选颜色?
我使用默认的Android项目,并尝试找到一种方法来更改已选定列表视图项目的背景颜色。我知道这是通过选择器完成的。我试图模仿来自全息主题的原始外观和行为,只是改变其中的颜色,但我失败了。有人可以向我解释如何获得listview项目的原始外观和感觉(longclick fade等),只是将颜色从这个奇怪的蓝色改为其他东西?更改所选ListView项目的颜色
我必须从android sdk复制到我的项目以及在哪里更改所选颜色?
假设您使用的是自定义ArrayAdapter
,则必须在getView()
方法的第二个参数上定义onClick()
侦听器。通常它被称为convertView
,但不一定。
这个第二个参数非常模糊地说,引用了每一行的布局。所以,当你想改变你行的背景,只是在第二个参数添加onClickListener()
,并更改背景:
convertView.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
convertView.setBackground(your_new_background);
}
});
嗨,我知道。在这种情况下,它不是我想要做的。不是选择器底层设置颜色,然后我再次改变它?听起来对我来说是错误的。 – Digit
我不知道你问什么,但watever我明白我想你想要像
listview.setOnItemClickListener(new OnItemClickListener(){
@override
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
..............................
view.setBackground("Your color");
}
});
嗨,我知道。在这种情况下,它不是我想要做的。看到我上面的评论 – Digit
感谢所有的答案,我已经知道如何改变的背景项目在我的自定义适配器。但我的应用程序基于默认的Android项目(两个窗格),此项目使用左侧窗格中列表项的状态。我对状态如何改变以及效果等方面感到非常高兴,只是选择的颜色是我不喜欢的。覆盖我自己的代码在这里似乎不是正确的方法。所以我试着改变为这个默认项目创建的选择器,但我失败了。我以为我从sdk那里得到一个副本,只是改变颜色而不会丢失任何样式等等,但是从哪里来? – Digit