0

我想僅在當時突出顯示一行,我通過使TextView可見(或使用BadgeView庫,這是我在第一次使用的嘗試但產生這個錯誤,我認爲這是圖書館的缺陷/錯誤)。通過適配器在ListView行中僅在一行中顯示TextView

這是我的方法:(我在我的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在第一行中顯示,該行不按預期工作。

任何想法?

回答

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); 
    } 

} 

你可以提供您的通過視圖的佈局?

+0

地獄是的,工作。非常感謝。我不知道我爲什麼沒有這個想法。 ;) – Leandros

+0

尼斯:)然後我不需要佈局。 – Oritm

相關問題