android - 如何获取复杂 ListView 行 View 中的 View ?

标签 android eclipse android-layout

我有一个 ListView,它已使用适配器填充了包含数据的行。 行布局为“RelativeLayout”类型,包含各种 View 对象,其中一个id为“@+id/bar_fill”。

我有一个循环遍历 ListView 的所有子项,我想“获取”我上面提到的 View 项。

我使用的代码是:

ListView list = getListView();
int count = list.getCount();
for (int i = 0; i < count; i++) 
{
   RelativeLayout row = (RelativeLayout) list.getChildAt(i);
   View bar = row.findViewById(R.id.bar_fill);         
}

但是当它到达最后一行时它崩溃了。当我把它注释掉并做了

System.out.println(findViewById(R.id.bar_fill));

它返回空值。

我做错了什么?

最佳答案

在自定义适配器中覆盖此函数。

public View getView(int position, View convertView, ViewGroup parent);
View v = convertView;
    if (v == null) {
        LayoutInflater vi = (LayoutInflater) c
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        v = vi.inflate(id, null);
    }

现在,如果您想要 ListView 行项目中的某些 TextView ,那么可以这样做:

TextView t1 = (TextView) v.findViewById(com.pis.prototype.R.id.TextView01);

t1 现在是您需要的 View ...:P

关于android - 如何获取复杂 ListView 行 View 中的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8177995/

相关文章:

java - 创建单例管理器时无法对非静态字段进行静态引用

android - 在 TableLayout 中右对齐

Android 布局 - layout-normal vs layout

java - 在 Android 中从 SQLite 填充 TextViews 和按钮

opencv - 如何检测框架中的整个矩形

javascript - html5 视频标签无法使用 cordova 2.9.0 和 jquery1.9.0 在 phonegap android 中播放 .mp4 视频?

java - 如何处理从未使用过分配对象的情况

java - 如何在 Eclipse 中更新我的 JDK 版本(从 java 8 到 14)

android - 我如何在 android 中返回到我的 gl 屏幕。我曾尝试跳出并在我的代码中使用 xml 布局

java - 软键盘弹出时禁用后退按钮,Android