साथ ListView में मैं जब एक कर्सर एडाप्टर का उपयोग चेकबॉक्स राज्य को बचाने के लिए एक रास्ता खोजने नहीं कर सकते। बाकी सब कुछ ठीक काम करता है, लेकिन अगर मैं एक चेकबॉक्स पर क्लिक करें यह जब यह पुनर्नवीनीकरण दोहराया जाता है। Ive सरणी एडाप्टर के उपयोग के उदाहरण देखा है, लेकिन अनुभव im की मेरी कमी की वजह से लग रहा यह मुश्किल एक कर्सर एडाप्टर का उपयोग कर में अनुवाद करने के लिए। किसी ने मुझे कैसे इसके बारे में जाने के लिए का एक उदाहरण दे सकता है। किसी भी मदद की सराहना की।बचाने एंड्रॉयड चेकबॉक्स राज्य कर्सर एडाप्टर
private class PostImageAdapter extends CursorAdapter {
private static final int s = 0;
private int layout;
Bitmap bm=null;
private String PostNumber;
TourDbAdapter mDbHelper;
public PostImageAdapter (Context context, int layout, Cursor c, String[] from, int[] to, String Postid) {
super(context, c);
this.layout = layout;
PostNumber = Postid;
mDbHelper = new TourDbAdapter(context);
mDbHelper.open();
}
@Override
public View newView(Context context, final Cursor c, ViewGroup parent) {
ViewHolder holder;
LayoutInflater inflater=getLayoutInflater();
View row=inflater.inflate(R.layout.image_post_row, null);
holder = new ViewHolder();
holder.Description = (TextView) row.findViewById(R.id.item_desc);
holder.cb = (CheckBox) row.findViewById(R.id.item_checkbox);
holder.DateTaken = (TextView) row.findViewById(R.id.item_date_taken);
holder.Photo = (ImageView) row.findViewById(R.id.item_thumb);
row.setTag(holder);
int DateCol = c.getColumnIndex(TourDbAdapter.KEY_DATE);
String Date = c.getString(DateCol);
int DescCol = c.getColumnIndex(TourDbAdapter.KEY_CAPTION);
String Description = c.getString(DescCol);
int FileNameCol = c.getColumnIndex(TourDbAdapter.KEY_FILENAME);
final String FileName = c.getString(FileNameCol);
int PostRowCol = c.getColumnIndex(TourDbAdapter.KEY_Post_ID);
String RowID = c.getString(PostRowCol);
String Path = "sdcard/Tourabout/Thumbs/" + FileName + ".jpg";
Bitmap bm = BitmapFactory.decodeFile(Path, null);
holder.Photo.setImageBitmap(bm);
holder.DateTaken.setText(Date);
holder.Description.setText(Description);
holder.cb.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
CheckBox cBox = (CheckBox) v;
if (cBox.isChecked()) {
mDbHelper.UpdatePostImage(FileName, PostNumber);
}
else if (!cBox.isChecked()) {
mDbHelper.UpdatePostImage(FileName, "");
}
}
});
return row;
};
@Override
public void bindView(View row, Context context, final Cursor c) {
ViewHolder holder;
holder = (ViewHolder) row.getTag();
int DateCol = c.getColumnIndex(TourDbAdapter.KEY_DATE);
String Date = c.getString(DateCol);
int DescCol = c.getColumnIndex(TourDbAdapter.KEY_CAPTION);
String Description = c.getString(DescCol);
int FileNameCol = c.getColumnIndex(TourDbAdapter.KEY_FILENAME);
final String FileName = c.getString(FileNameCol);
int PostRowCol = c.getColumnIndex(TourDbAdapter.KEY_Post_ID);
String RowID = c.getString(PostRowCol);
String Path = "sdcard/Tourabout/Thumbs/" + FileName + ".jpg";
Bitmap bm = BitmapFactory.decodeFile(Path, null);
File x = null;
holder.Photo.setImageBitmap(bm);
holder.DateTaken.setText(Date);
holder.Description.setText(Description);
holder.cb.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
CheckBox cBox = (CheckBox) v;
if (cBox.isChecked()) {
mDbHelper.UpdatePostImage(FileName, PostNumber);
}
else if (!cBox.isChecked()) {
mDbHelper.UpdatePostImage(FileName, "");
}
}
});
}
}
static class ViewHolder{
TextView Description;
ImageView Photo;
CheckBox cb;
TextView DateTaken;
}
}
मैं कैसे अपने खुद के लेआउट का प्रयोग करेंगे? चेकटेक्स्टव्यू को पंक्ति का शीर्ष स्तर होने की आवश्यकता नहीं है? जब मैं एक चेकटेक्स्टव्यू का उपयोग करता हूं, तो मुझे एक दृश्य (कैमरा से फोटो) दिखाने के लिए एक छवि दृश्य जैसी छवियों को जोड़ने का तरीका ढूंढना प्रतीत नहीं होता है। – Ricardo
सबसे पहले, 'चेकड टेक्स्टव्यू' 'एंड्रॉइड का समर्थन करता है: ड्रॉरेबल लाइफ 'और किन, जिसका आप उपयोग कर सकते हैं। दूसरा, AFAIK, जब तक कि उचित 'एंड्रॉइड: आईडी' (ऊपर देखें) है, यह किसी अन्य लेआउट के अंदर हो सकता है (उदाहरण के लिए,' LinearLayout' में 'ImageView' भी शामिल है)। – CommonsWare
अब मुझे इस थ्रेड http://www.mail-archive.com/[email protected]/msg06941.html जैसी ही समस्या है। मैं एंड्रॉइड कैसे सेट करूं: पीछे कोड से drawableLeft संपत्ति? – Ricardo