Sto provando a creare un cursore personalizzato che utilizzerà due layout diversi a seconda di alcuni dati nel cursore. Continuo a leggere sull'overriding di getViewTypeCount() e getItemViewType() 'per farlo accadere ma non riesco a capire come implementarlo.cursoradapter con layout di righe differenti
Questo è il mio codice per i metodi bindView e new View:
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView tView = (TextView) view.findViewById(R.id.TextView1);
tView.setText("The text");
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return mInflater.inflate(R.layout.item1, parent, false);
}
.
EDIT: Ora ho questo lavoro, ma voglio scegliere cosa rowlayout da usare a seconda di alcuni dati del cursore e non posso ottenere che il lavoro .. Qualcuno ha qualche idea?
@Override
public int getItemViewType(int position) {
return position % 2;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
ViewHolder holder = (ViewHolder) view.getTag();
holder.txtAddress
.setText("blabla");
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
ViewHolder holder = new ViewHolder();
View v = null;
int type = cursor.getPosition() % 2;
if(type == 0) {
v = mInflater.inflate(R.layout.item, parent, false);
} else {
v = mInflater.inflate(R.layout.item2, parent, false);
}
holder.txtAddress = (TextView) v.findViewById(R.id.tvName);
v.setTag(holder);
return v;
}
Stai cercando di aggiungere sezioni/intestazioni al tuo visualizzazione elenco? Mark Murphy ha creato un adattatore per elenco cwac-merge davvero facile da usare. – csaunders
No, ho 2 layout diversi e talvolta voglio usare layout1 se mCursor.getString (mCursor.getColumnIndex ("type")). Equals ("1") e voglio usare layout2 quando mCursor.getString (mCursor.getColumnIndex ("tipo")). equals ("2") – jagsler
Se si desidera, è possibile afferrare due cursori separati. Uno dove scrivi == 1 e uno per dove type == 2. È ghetto, ma potrebbe aiutarti ad andare avanti. – csaunders