Yeniim, durumu iyi açıklayamam. Daha fazla bilgiye ihtiyacınız varsa lütfen bize bildirin. Özel liste görünümünde diğer (onay kutusu) görünümü nasıl bulunur?
Böyle bir liste görünümü uygulamak çalışıyorum:[textview][button][checkbox]
[textview][button][checkbox]
[textview][button][checkbox]
[textview][button][checkbox]
otomatik olarak kontrolsüz diğer onay istemek ben onlardan biri tıkladığında. Yani tek bir seçim gibi. Çoktan seçmeli uygulayabilen aşağıdaki kodları yazıyorum ama bunu tek seçenek olarak değiştirmeye çalıştığımda sorun yaşıyorum.
checkBoxOnClickListener içinde Başka (onay kutusu) görünümü bulamıyor ve bunları değiştiremiyorum. Herhangi bir öneri pals? Ekspertiz becerilerimin zayıf olduğunu düşünüyorsanız bana bildirin.
Teşekkür ederiz.
public class MyAdapter extends SimpleAdapter {
Map<Integer, Boolean> map;
LayoutInflater mInflater;
private List<? extends Map<String, ?>> mList;
public MyAdapter(Context context, List<Map<String, String>> data, int resource, String[] from, int[] to) {
super(context, data, resource, from, to);
map = new HashMap<Integer, Boolean>();
mInflater = LayoutInflater.from(context);
mList = data;
for (int i = 0; i < data.size(); i++) {
map.put(i, false);
}
if (data.get(0).get("value").equals("Male") || data.get(0).get("value").equals("Yes")) {
map.put(1, true);
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = mInflater.inflate(R.layout.rapid_diagnosis_row, null);
}
TextView textView = (TextView) convertView.findViewById(R.id.multiple_question);
textView.setText((String) mList.get(position).get("value"));
CheckBox checkBox = (CheckBox) convertView.findViewById(R.id.multiple_checkbox);
checkBox.setChecked(map.get(position));
// save position and checking status into tag
checkBox.setTag(position);
checkBox.setOnClickListener(checkBoxOnClickListener);
return convertView;
}
public OnClickListener checkBoxOnClickListener = new OnClickListener() {
public void onClick(View v) {
// ((CheckBox) v).toggle();
boolean checked = ((CheckBox) v).isChecked();
if (checked) {
((CheckBox) v).setChecked(true);
} else {
((CheckBox) v).setChecked(false);
}
int p = (Integer) (v.getTag());
mSimpleAdapter.map.put(p, checked);
// this cannot works, helppp
ListView lv = ((ListView) (v.getParent().getParent()));
(CheckBox) cb = lv.findViewWithTag(1);
cb.toggle();
.....................
............... } }; }
Teşekkür ederim Thomas. Problem çözüldü. Aslında sadece iki satır varsa sadece tek bir seçim yapmam gerekiyor. Kodları çirkin ama çalışır: ListView lv = (ListView) (v.getParent(). GetParent()); \t \t \t \t \t Görünüm görünümü = lv.findViewWithTag (Math.abs (p - 1)); \t \t \t \t CheckBox cb = (CheckBox) (view.findViewById (R.id.multiple_checkbox)); \t \t \t \t cb.toggle(); – ThinkChris
Sorununuzu çözebildiğinize sevindim! :) – Thomas