我使用一個ListView從光標在屏幕上的兩個TextView顯示的信息的三個列。左側的TextView是靜態的,而右側的則是以兩種語言進行翻譯,當選擇時切換。動態更改的ListView元件
我的問題是,直到我滾動的ListView,此時適配器和ListView控件似乎變得不同步,導致片狀行爲,最後一個空指針異常能正常工作。
這裏的onListItemClick代碼:
public void onListItemClick(ListView l, View v, int position, long id){
//first revert previous selection to English
if(previous_position!=99){
View vo =l.getChildAt(previous_position);
TextView pt = (TextView)vo.findViewById(R.id.english);
pt.setTextColor(Color.BLUE);
pt.setText(previous_text);
}
//now show current selection in Hindi
TextView t = (TextView) v.findViewById(R.id.translation);
t.setTextColor(Color.RED);
t.setText(gloCursor.getString(3));
//finally remember where we changed things so we can revert them
previous_position = position;
previous_text = gloCursor.getString(3);
// adapter data notification
//adapter.notifyDataSetChanged();
}
我註釋掉notifyDataStateChanged,因爲它並沒有在這種情況下,爲我工作。
希望任何有識之士或者一個更好的設計這一點。
感謝, P.
,如果你做你的代碼未精縮 – jamis0n