【问题标题】:Change color of an selected ListView item更改所选 ListView 项的颜色
【发布时间】:2014-03-07 22:10:35
【问题描述】:

我使用默认的 android 项目并尝试找到一种方法来更改被选中的列表视图项的背景颜色。我知道这是通过选择器完成的。我试图模仿来自全息主题的原始外观和行为,只是改变那里的颜色,但我失败了。有人可以向我解释如何获得列表视图项目的原始外观(长按淡入淡出等)并将颜色从这种奇怪的蓝色更改为其他颜色吗?

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

【问题讨论】:

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

标签: android listview colors background


【解决方案1】:

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

第二个参数,说得很含糊,指的是每一行的布局。所以当你想改变你的行的背景时,只需在第二个参数上添加一个onClickListener(),然后改变背景:

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

【讨论】:

  • 嗨,我知道。在这种情况下,它不是我想要做的。选择器不是设置颜色然后我再次更改它吗?对我来说听起来不对。
【解决方案2】:

老兄,您可以为您的列表视图使用自定义适配器。 在自定义 xml 文件中,您可以更改一切。 详细示例请关注here

【讨论】:

  • 嗨,我知道这一切。在这种情况下,它不是我想要做的。见我上面的评论
【解决方案3】:

我不知道你在问什么,但是我明白我认为你想要类似的东西

listview.setOnItemClickListener(new OnItemClickListener(){

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

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

【讨论】:

  • 嗨,我知道。在这种情况下,它不是我想要做的。见我上面的评论
猜你喜欢
  • 2014-10-25
  • 2013-06-03
  • 2015-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多