رادیو گروپ در لیست ویو
من یه لیست ویو دارم که توش یه رادیو گروپ با 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);
}
{




دوست عزیز شما باید اول مقدار 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 );
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .