java - 如何按位置设置 ListView 中特定项目的背景颜色?

标签 java android mobile

我想在 ListView 中设置特定项目的背景颜色。

我的 ListView 是由 ArrayAdapter 使用 ArrayList 生成的。

我计划更改 ListView 中的特定项目的背景颜色。

我知道该项目在列表中的位置。

这是我生成 ListView 的代码。

respondMessageListView = (ListView) findViewById(R.id.respondMessageListView);
respondMessageListView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, autoRespondMessages.getMessages()));

谢谢!

[编辑]

根据 this post ,如果在 onCreate() 中使用,则使用 setSelection 无效,解决方法是“删除 PullToRefreshListView 中的方法 onAttachedToWindow”。我不太了解解决方案。请问我该如何实现呢?我是 Activity 的子类,所以我不能再继承任何其他类。

最佳答案

您必须继承 ArrayAdapter 并覆盖 getView(...)方法。为简单起见,您可以直接调用基类实现并为返回的 View 设置背景颜色。

编辑: 以下示例将项目的背景着色为黑白交替。

private class MyAdapter extends ArrayAdapter {

    ...

    public View getView(int position, View convertView, ViewGroup parent) {
        View v = super.getView(position, convertView, parent);
        v.setBackgroundColor(position % 2 == 0 : 0xff000000, 0xffffffff);
    }
}

关于java - 如何按位置设置 ListView 中特定项目的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12576103/

相关文章:

css - 背景颜色/背景图像的底部在移动网站上被截断

mobile - Adobe Air Mobile 初创公司

actionscript-3 - AS3/Flex 性能 - 新的 ArrayList 与 ArrayList.removeAll()

java - @AndroidEntryPoint 基类必须扩展 ComponentActivity,(支持)Fragment、View、Service 或 BroadcastReceiver

java - Spring boot docker插件每次都需要删除镜像

java - onCreate 后 Android 对象返回 null

java - 如何在缩放图像后禁用调整图像大小?

java - org.apache.ibatis.builder.IncompleteElementException : Could not find result map . 为什么?

java - 删除方法中的 ArrayList 元素

android - 检测用户何时离开 Android 中的按钮