中に作成された1つのnewView(..)
ビューを別のタイプとして追加して、そのビューだけが再利用されないようにすることはできbindView(...)
ますか?
これは私のカスタムcursorAdapterがどのように見えるかです:
@Override
public void bindView(View vi, Context arg1, Cursor cursor) {
priority.setText(cursor.getString(cursor.getColumnIndex(TodoTable.COLUMN_PRIORITY)));TextView timeElapsed = (TextView)vi.findViewById(R.id.todayTime); //time
long id = cursor.getLong(cursor.getColumnIndex(TodoTable.COLUMN_ID));
if(ts.getRunning() == id){
ts.startTimer(vi, ts.getCurrentTaskStart(), id);
}else{
long time = cursor.getLong((cursor.getColumnIndex(TodoTable.COLUMN_TIME)));
timeElapsed.setText(ts.getTimeString(0, 0, time));
}
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup arg2) {
LayoutInflater inflater = LayoutInflater.from(context);
View vi = inflater.inflate(R.layout.list_item, null);
bindView(vi, context, cursor);
return vi;
}
getItemViewType
を使用して別のタイプに追加しようとしましたgetViewTypeCount
が、これは位置のみを処理でき、リストビューの行に関連付けられたIDは処理できません。
ts.getRunning() == id
作成時のビューがスクロール時に他の位置で再利用されないようにしたい。どうすればこのようなことができますか?