بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

رادیو گروپ در لیست ویو

مدیریت گفتگو
jamal2012 10 سال پیش
آخرین تغییر: 10 سال پیش

من یه لیست ویو دارم که توش یه رادیو گروپ با 4 رادیو باتن هست من میخوام از دیتا بیس که دارم این رادیو باتن ها تیکش زده بشه  تو دیتا بیسم یه ستون دارم به اسم answerکه جوابهایی رو کاربر وارد میکنه رو میگیره مثلا رورادیو باتن 1  کلیک میکنه مقدار 1 تو answer ذخیره میشه وروی رادیو باتن 2 کلیک میکنه مقدار2 تو answerذخیره میشه و الی اخر... من میخوام تواسکرول کردن لیست ویو این رادیو باتن هام تیکش به هم نخوره و وقتی از صفحه خارج میشم ودوباره برمیگردم گزینه ها تیک داشته باشن یعنی مقدار تیکشونو از answer بگیرن اینم کدم هست

 public ViewHolder(View view) {
radioGroup = (RadioGroup) view.findViewById(R.id.myRadioGroup);
txtSoal = (TextView) view.findViewById(R.id.txtSoal);
rd1 = (RadioButton) view.findViewById(R.id.rd1);
rd2 = (RadioButton) view.findViewById(R.id.rd2);
rd3 = (RadioButton) view.findViewById(R.id.rd3);
rd4 = (RadioButton) view.findViewById(R.id.rd4);
matnRow = (View) view.findViewById(R.id.matnRow);

}


public void fill(final ArrayAdapter<StructApplicationMatn> matnAdapter, final StructApplicationMatn itemM, final int position)
{

txtSoal.setText(itemM.txtSoal);
// gozine1.setText(itemM.gozine1);
// gozine2.setText(itemM.gozine1);
// gozine3.setText(itemM.gozine1);
// gozine4.setText(itemM.gozine1);

radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override
public void onCheckedChanged(RadioGroup arg0, int checkedId) {
itemM.selectedId = checkedId;
if (checkedId == R.id.rd1)
{

// Toast.makeText(G.currentActivity.getBaseContext(), "گزینه 1انتخاب شد",
// Toast.LENGTH_SHORT).show();
SQLiteDatabase database = db.getReadableDatabase();

ContentValues cv1 = new ContentValues();
cv1.put("answer", 1);
database.update("first", cv1, "id " + "=" + itemM.id, null);
// itemM.answer = '1';
// matnAdapter.notifyDataSetChanged();

}

else if (checkedId == R.id.rd2)
{

// Toast.makeText(G.currentActivity.getBaseContext(), "گزینه 2انتخاب شد",
// Toast.LENGTH_SHORT).show();
SQLiteDatabase database = db.getReadableDatabase();

ContentValues cv1 = new ContentValues();
cv1.put("answer", 2);
database.update("first", cv1, "id " + "=" + itemM.id, null);
// itemM.answer = '2';
// matnAdapter.notifyDataSetChanged();

} else if (checkedId == R.id.rd3)
{

// Toast.makeText(G.currentActivity.getBaseContext(), "گزینه 3انتخاب شد",
// Toast.LENGTH_SHORT).show();
SQLiteDatabase database = db.getReadableDatabase();

ContentValues cv1 = new ContentValues();
cv1.put("answer", 3);
database.update("first", cv1, "id " + "=" + itemM.id, null);
//itemM.answer = '3';
// matnAdapter.notifyDataSetChanged();

} else if (checkedId == R.id.rd4)
{

// Toast.makeText(G.currentActivity.getBaseContext(), "گزینه 4انتخاب شد",
// Toast.LENGTH_SHORT).show();
SQLiteDatabase database = db.getReadableDatabase();

ContentValues cv1 = new ContentValues();
cv1.put("answer", 4);
database.update("first", cv1, "id " + "=" + itemM.id, null);
// itemM.answer = '4';
// matnAdapter.notifyDataSetChanged();

}

}
});
if (itemM.answer == 1)

{
rd1.setChecked(true);

} else if (itemM.answer == 2)
{

rd2.setChecked(true);

} else if (itemM.answer == 3)
{

rd3.setChecked(true);

} else if (itemM.answer == 4)
{

rd4.setChecked(true);

}
if (itemM.selectedId == 0) {
radioGroup.clearCheck();
} else {
radioGroup.check(itemM.selectedId);
}
{

نظرات

k112 10 سال پیش
اگر درست متوجه سوال شده باشم مشکل شما فقط قسمت تیک هست! setChecked تابع برای تیک زدن یا انتخاب میتونید استفاده کنید
jamal2012 10 سال پیش
سلام دوست ممن سوال رو کامل کردم اگر مقدوره براتون کمکم کنید
mahdiFar77 10 سال پیش
پروژتو ایمیل کن->mahdi6989@gmail.com

پاسخ‌ها 1

namdar79 10 سال پیش

دوست عزیز شما باید اول مقدار answer رو از دیتابیس بگیری یک boolean درست کنی و با یک دستور شرطی با مقداری که از دیتابیس گرفتی مقدار اونو تنظیم کنی و همون طور که دوست گرامی  k112  گفتند از متد setChecked درون شی های ایجاد شده توسط کلاس RadioButton استفاده کنید

منظورم این قسمته

  rd1 =(RadioButton) view.findViewById(R.id.rd1);
rd2 =(RadioButton) view.findViewById(R.id.rd2);
rd3 =(RadioButton) view.findViewById(R.id.rd3);
rd4 =(RadioButton) view.findViewById(R.id.rd4);



برای مثال :

 

boolean boole;
 if(answer == 1 ){
boole = true;
}
rd2.setChecked (boole );

نظرات

jamal2012 10 سال پیش
منم همین کار رو کردم دوست من
jamal2012 10 سال پیش
لطفا کمک کنید

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