0

我当时只想突出显示一行,我通过使TextView可见(或使用 BadgeView 库,我在第一次尝试中使用但产生了这个错误,我认为这是库的一个缺陷/错误)来做到这一点.

这是我的方法:(我已经在我的 中覆盖了这个方法SimpleCursorAdapter

@Override
public void bindView(View view, Context context, Cursor cursor) {
    super.bindView(view, context, cursor);

    int rowId = Integer.valueOf(((TextView) view.findViewById(R.id.two_line_rowid)).getText().toString());

    if (rowId == mRowIdSelected) {
        ((TextView) view.findViewById(android.R.id.text1)).setText("SELECTED");
        ((TextView) view.findViewById(R.id.select_badge)).setVisibility(View.VISIBLE);
    }

}

它工作得很好,但有一个错误。所选行中唯一更改的文本android.R.id.text1按预期工作,但在第一行TextView所选行中可见,但未按预期工作。

有任何想法吗?

4

1 回答 1

1

你可以试试这个:

@Override
public void bindView(View view, Context context, Cursor cursor) {
    super.bindView(view, context, cursor);

    int rowId = Integer.valueOf(((TextView) view.findViewById(R.id.two_line_rowid)).getText().toString());

    if (rowId == mRowIdSelected) {
        ((TextView) view.findViewById(android.R.id.text1)).setText("SELECTED");
        ((TextView) view.findViewById(R.id.select_badge)).setVisibility(View.VISIBLE);
    } else {
        ((TextView) view.findViewById(android.R.id.text1)).setText("NOT-SELECTED");
        ((TextView) view.findViewById(R.id.select_badge)).setVisibility(View.INVISIBLE);
    }

}

你能提供你通过的视图的布局吗?

于 2013-01-16T16:37:50.293 回答