0

一度に1行だけを強調表示したいのですが、これを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 に答える