java - 无需 CustomAdapter 即可更改 ListView 特定行的背景颜色

标签 java android listview

我正在尝试更改 ListView 中特定行的背景颜色以匹配我的 List<String> hexcodeList 中的特定颜色,其中包含颜色十六进制代码。但是,我没有为此使用 CustomAdapter,而是覆盖 getView来自ArrayAdapter 。我希望第一行具有列表中的第一种颜色,第二行具有第二种颜色,依此类推。我对 Java 很陌生,我的第一个想法是使用 for 语句,所以下面的代码是我尝试过但没有成功的代码,因为这会使用 hexcodeList 的最后一个颜色更改所有行的背景颜色。 .

ListView CoresListView = (ListView) findViewById(R.id.ListViewId);  
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, hexcodeList){
    @Override
    public View getView(int position, View convertView, ViewGroup parent){
        View view = super.getView(position,convertView,parent);
        for (position = 0; position < hexcodeList.size(); position++) {
            view.setBackgroundColor(Color.parseColor(hexcodeList.get(position)));
        }
        return view;
    }
};

CoresListView.setAdapter(adapter);

最佳答案

在创建的每个 View 上,您​​将循环遍历列表并设置所有颜色,以便为每个 View 设置最后一个颜色。

删除循环并写入:

view.setBackgroundColor(Color.parseColor(hexcodeList.get(position)));

为每个 View 调用 getView(...),因此需要循环。

关于java - 无需 CustomAdapter 即可更改 ListView 特定行的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43420244/

相关文章:

java - html 使用 switch() JS 以相同的形式绘制提交表单

java - 如何在 AlertDialog 中添加重新启动

java - 从 ASP 转换的 JSON 日期 - 需要转换为 Java

Android studio 在不重新安装的情况下启动应用程序

android - android中的( View View )是什么?

java - 如何生成指定范围的 11 位序列号?

java - 仅在填充的 ListView 中显示模型

java - 当在预定义位置选择上一个圆时,在 Android Canvas 中绘制一个圆

android - 如何在 BaseAdapter 中使用 Dialog?

java - 通过单击 ListViewItem 打开另一个 Activity 并传递文本和图像。