java - 在监听器外部更改 Android ListView 选定行属性

标签 java android listview

我有一个 Android ListView,我想在其中更改一些选定的行属性,例如背景颜色、 ImageView 等。

我知道如何更改onItemClick(AdapterView<?> parent, View view, int position, long id)通过获取 View 对象。

但现在的问题是我想在监听器之外修改此行属性。我进行了很多搜索,但未能找到解决方案。

我也在这里阅读了 ListView 和 BaseAdapter 的文档:

我怎样才能完成这个任务?

最佳答案

我希望您使用自定义适配器,如果是这样,请按照后续步骤操作。

如果当前 View 满足您的条件,请在 getView() 方法中设置背景(或您想要的任何更改)。否则将背景重置为默认值。例如我想以不同的颜色显示交替的行,那么我会这样做

public View getView(int position, View view, ViewGroup parent) {

    if (view == null) {
        LayoutInflater inflater = getLayoutInflater();
        view = inflater.inflate(R.layout.row, parent, false);
    } else {}

    if (position % 2 == 0) {
        view.setBackgroundResource(R.color.gray);
    } else {
        view.setBackgroundResource(R.color.white);
    }
    return view;
}

关于java - 在监听器外部更改 Android ListView 选定行属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16833694/

相关文章:

Android 测试 - 应用程序在一部手机上运行,​​但在其他手机上崩溃

安卓运行报错

java - ListView 不从 OnClickListener 重绘

java - 自定义 hibernate 标准(一对多关系)

java - ActionListener() 引用同一个对象

java - 由于创建 bundle 失败,我无法在 Eclipse 中部署 JavaFX 项目

java - listView的每个项目都播放一个不同的(简短的)媒体文件。剪辑了那么多之后,我听不到声音了

java - "Error: Could not find or load main class” 在 Jenkins

android - 获取游标对象时出现空指针异常

c# - 如何隐藏 ListView 控件中的列?