SimpleCursorAdapter öğesini genişleterek özel bir ListView oluşturdum. Sonuç, IMAGE + CheckedTextView (Metin + Onay Kutusu).Android Listeye tıklayınSil kontrolleri onay kutusunu işaretleyin
Bir Öğeyi uzun tıklattığımda, her şey iyi çalışıyor - Doğru kimliği ve tıklanan Öğenin ayrıntılarını alıyorum.
Bir Öğeyi işaretli olarak işaretlemeye çalıştığımda sorun çıkıyor, ancak yanlış onay kutusunu işaretliyor.
Örneğin: Listemde 9 öğe var, 1-9. listItem 1'i tıklarsam, 9 numaralı satırdaki onay kutusu denetleniyor. 4. maddeye tıklarsam satır 6'daki onay kutusu kontrol edilir ve orta hatta tıklarsam kontrol edilir.
Açıkçası burada bir şeyi özlüyorum :) Satırı uzun tıklattığımı hatırlıyorum (contextMenu açılır), her şey harika çalışıyor.
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
CheckedTextView markedItem = (CheckedTextView) view.findViewById(R.id.btitle);
if (!markedItem.isChecked()) {
markedItem.setChecked(true);
} else {
markedItem.setChecked(false);
}
}
});
herhangi bir yardım takdir:
Bu dinleyicidir!
Bana daha fazla kod göndermeme ihtiyacınız varsa bildirin.
Teşekkür ederiz! Adaptör kodu
public class ImageCursorAdapter extends SimpleCursorAdapter {
private Cursor c;
private Context context;
private String url;
private TextView bUrl;
public ImageCursorAdapter(Context context, int layout, Cursor c,
String[] from, int[] to) {
super(context, layout, c, from, to);
this.c = c;
this.context = context;
}
public View getView(int pos, View inView, ViewGroup parent) {
View v = inView;
if (v == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.image_list, null);
}
this.c.moveToPosition(pos);
final TextView bTitle = (TextView) v.findViewById(R.id.btitle);
String bookmark = this.c.getString(this.c.getColumnIndex(Browser.BookmarkColumns.TITLE));
byte[] favicon = this.c.getBlob(this.c.getColumnIndex(Browser.BookmarkColumns.FAVICON));
if (favicon != null) {
ImageView iv = (ImageView) v.findViewById(R.id.bimage);
iv.setImageBitmap(BitmapFactory.decodeByteArray(favicon, 0, favicon.length));
}
bTitle.setText(bookmark);
return (v);
}
}
Bize bağdaştırıcınızı göster – Falmarri
düzenlenmiş soru. Teşekkürler. –
Dinleyicideki pozisyon değerini kaydediyor musunuz? Başka dinleyicin var mı? – Jim