PDA

View Full Version : نحوه استفاده از RadioGroup در تعیین نوع عکس در لیست ویو



alireza142
جمعه 03 مرداد 1393, 11:38 صبح
سلام خدمت همه دوستان گرامی

میخواستم یک لیست برای ثبت نام تهیه کنم که با انتخاب دکمه رادیویی ، تصویر زن یا مرد در مقابل نام فرد در لیست ویو نمایش داده بشه. مثل تصویر زیر. اما هر چی جنسیت رو انتخاب کنی، بازم همون تصویر پیش فرض نمایش داده میشه:
121534
هر چی گشتم نتونستم راه حل مهار کردن این RadioGroup رو در کلاس ListAdapter پیاده سازی کنم. کسی میتونه کمکم کنه یا یک نمونه کد برنامه مشابه معرفی کنه؟
اینم کد های کلاس ListAdapter :


public class ListAdapter extends BaseAdapter {


private final String TAG = "*** ListAdapter ***";


private LayoutInflater myInflater;
private List<Contact> list;


public ListAdapter(Context context) {
myInflater = LayoutInflater.from(context);


Log.i(TAG, "Adapter setuped successfully.");
}


public void setData(List<Contact> list) {
this.list = list;


Log.i(TAG, "Data passed to the adapter.");
}


@Override
public int getCount() {
return list.size();
}


@Override
public Object getItem(int position) {
return null;
}


@Override
public long getItemId(int position) {
return 0;
}


@Override
public View getView(int position, View view, ViewGroup parent) {
final ViewHolder holder;


if (view == null) {
view = myInflater.inflate(R.layout.list_adabter, null);
holder = new ViewHolder();
holder.tvId = (TextView) view.findViewById(R.id.tvId);
holder.tvName = (TextView) view.findViewById(R.id.tvNamelist);
holder.radioJensiat = (RadioGroup) view.findViewById(R.id.radioGroup1);
holder.tasvir = (ImageView) view.findViewById(R.id.axList);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
holder.tvId.setTag(list.get(position).getIdInStrin g());
holder.tvId.setText(list.get(position).getIdInStri ng());
holder.tvName.setText(list.get(position).getName() );


return view;
}


static class ViewHolder {


ImageView tasvir;
TextView tvId;
TextView tvName;
RadioGroup radioJensiat;


}


}


و این هم کدهای کلاس DatabaseActivity



public class DatabaseActivity extends Activity {


private final String TAG = "MainActivity";
private DatabaseHandler dbHandler;
private Contact contact;
private List<Contact> list;
private EditText etName;
private TextView goneTV;
private Button btnAdd;
private ListView listView;
private ListAdapter adapter;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i(TAG, "Inside onCreate()");


dbHandler = new DatabaseHandler(this);
contact = new Contact();
adapter = new ListAdapter(this);


listView = (ListView) findViewById(R.id.listView1);


btnAdd = (Button) findViewById(R.id.btnAdd);
btnAdd.setOnClickListener(new OnClickListener() {


@Override
public void onClick(View v) {
Log.i(TAG, "Button clicked");


etName = (EditText) findViewById(R.id.editName);
String name = etName.getText().toString();


if (name.equalsIgnoreCase("")) {


Toast.makeText(DatabaseActivity.this,
"لطفا نام خود را وارد نمایید", Toast.LENGTH_SHORT)
.show();


return;


} else {


contact.setName(name);
dbHandler.insertContact(contact);
refreshList();
Toast.makeText(DatabaseActivity.this, name + " ثبت شد",
Toast.LENGTH_SHORT).show();
etName.setText("");
setGoneTextView();
}
}
});


dbHandler.open();
refreshList();
setGoneTextView();
}


@Override
protected void onResume() {
super.onResume();


dbHandler.open();
refreshList();
}


@Override
protected void onPause() {
super.onPause();


dbHandler.close();
}


protected void refreshList() {
list = dbHandler.getAllContacts();
adapter.setData(list);
listView.setAdapter(adapter);
}




}
}

saeed_g21
جمعه 03 مرداد 1393, 11:49 صبح
مگه اطلاعات دریافتی رو در db ذخیره نمیکنی ؟
اول :
دیتابیس برنامت رو از رو دستگاه بکش بیرون ببین در فیلد جنسیت چی ثبت میشه

دوم :
موقع نشان دادن تصویر بیا برای فیلد جنسیت با IF شرط بزار اگه آقا بود فلان تصویر و اگه خانم بود فلان تصویر دیگه نشان بده