آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

عدم ثبت وضیعت CheckBox در حالت Dialog (حل شد)

Dadparvar  11 سال پیش  11 سال پیش
0 0

سلام و عرض ادب خدمت دوستان

در پروژه لیست ویویی ، کدی نوشتم که وقتی روی هر آیتم از لیست کلیک میشه ، یک دیالوگ باز میشه و امکان ویرایش عنوان و توضیحات و چک باکسش رو میده (چیزی شبیه پروژه جلسه دهم ، با این تفاوت که بجای ویرایش در اکتیویتی جدید ، در پنجره دیالوگ ویرایش میکنه)

حالا این مورد کامل کار میکنه و عنوان و توضیحات رو دقیق جابجا میکنه ، اما تیک چکباکسش عمل نمیکنه. به اینصورت که وقتی در لیست تغییری در چکباکس بدید درسته و حتی وقتی روی آیتم کلیک کنید میبینید که در دیالوگ هم اون تیکش تغییر کرده.اما وقتی در دریالوگ ، تیکش رو بردارید و دکمه ذخیره رو بزنید ، تیکش در لیست تغییر نمیکنه (ولی اگر در دیالوگ عنوان یا توضیحات رو عوض کنید و ذخیره کنید میبینید که در لیست هم تغییر کرده!!)
عبارت adapter.notifyDataSetChanged(); رو هم در onResume() نوشتم

کدبخش مربوطه:

layoutRoot.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
final Dialog editDialog = new Dialog(G.currentActivity);
editDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
editDialog.setContentView(R.layout.edit_dialog);
final EditText edtTitle = (EditText) editDialog.findViewById(R.id.edtTitle);
final EditText edtDescription = (EditText) editDialog.findViewById(R.id.edtDescription);
final CheckBox chkDoneDialog = (CheckBox) editDialog.findViewById(R.id.chkDoneDialog);
Button btnSubmit = (Button) editDialog.findViewById(R.id.btnSubmit);

edtTitle.setText(item.title);
edtDescription.setText(item.description);
chkDoneDialog.setChecked(item.done);
btnSubmit.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
item.title = edtTitle.getText().toString();
item.description = edtDescription.getText().toString();
item.done = chkDoneDialog.isChecked();
editDialog.dismiss();
}
});
editDialog.show();
}
});
chkDone.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View view) {
CheckBox checkBox = (CheckBox) view;
item.done = checkBox.isChecked();
}
});

ممنون

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Dadparvar  11 سال پیش
+4 0

دوستان عزیز مشکل برطرف شد.
باید کد قسمت لیسنر دکمه ثبت ، به اینصورت میشد:

btnSubmit.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
item.title = edtTitle.getText().toString();
item.description = edtDescription.getText().toString();
item.done = chkDoneDialog.isChecked();
adapter.notifyDataSetChanged();
editDialog.dismiss();
}
});
0 0
تشکر از اعلام راه حل :) (11 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .