2013-03-07 4 views
0

Я застрял в ситуации, когда мне нужно получить идентификатор проверенного Radiobutton. Я знаю, где проблема, но я не могу ее решить. Пожалуйста, предложите мне на основе моего кода.Radiobutton в пользовательском списке - один раз нужно выбрать только один

@Override 
public View getView(int position, View convertView, ViewGroup parent) {  
    ViewHolder holder=null; 

    bean=arrayListCountry.get(position); 

    LayoutInflater inflater=(LayoutInflater)context.getSystemService(Service.LAYOUT_INFLATER_SERVICE); 
    if(convertView==null) 
    { 
     convertView=inflater.inflate(R.layout.custom_layout_listview, null); 
     holder=new ViewHolder(); 
     holder.textCountryName=(TextView)convertView.findViewById(R.id.textView1); 
     holder.radioCountry=(RadioButton)convertView.findViewById(R.id.radioButton1); 
     RelativeLayout relativeLayout=(RelativeLayout)convertView.findViewById(R.id.relativeCustomLayout); 
     relativeLayout.addView(convertView); 
     convertView.setTag(holder); 
     convertView.setTag(R.id.textView1,holder.textCountryName); 


    } 
    else 
     holder=(ViewHolder)convertView.getTag(); 

    holder.radioCountry.setTag(position); 

    holder.textCountryName.setText(bean.getCountryName()); 
    holder.radioCountry.setChecked(bean.getIsSelected()); 

    holder.radioCountry.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
      // TODO Auto-generated method stub 

      int pos=(Integer)buttonView.getTag(); 

      Country_Bean country_Bean=arrayListCountry.get(pos); 


      coubean.setIsSelected(buttonView.isChecked()); 


      //buttonView.setChecked(bean.getIsSelected()); 

      Toast.makeText(context, "POs:"+pos+"\ncountry:"+bean.getCountryName()+"\ncountry_check:"+bean.getIsSelected()+"\nbuttonCheck:"+buttonView.isChecked(), Toast.LENGTH_SHORT).show(); 
     } 
    }); 

    return convertView; 
} 

Скажите, пожалуйста, как я могу получить конкретный радиобуй. Я также хочу знать, почему getView обычно используется и как мы можем вручную вызвать этот метод. Заранее благодарю.

ответ

0

Вы пробовали RadioGroup? Это контейнер для многих RadioButton s. У него даже есть метод под названием getCheckedRadioButtonId().


Кроме этого, я вижу, что вы не соблюдаете правила набора текста. Я очень строг, когда дело доходит до этого, и я извиняюсь за код грамматики-нацизма внутри меня.

Если bean является переменной-членом, используйте mBean.

bean=arrayListCountry.get(position); 

Будет:

mBean=arrayListCountry.get(position); 

Country_Bean не правильное имя для класса.

Country_Bean 

Будет:

CountryBean 

Область имя переменной country_Bean тоже неправильно.

country_Bean 

Будет:

countryBean 

Также при использовании Eclipse, попробуйте использовать автоматический формат, как это сделает код гораздо симпатичнее (CTRL + SHIFT + F).

+0

Я использовал его, но не со списком, поэтому я использую одиночный радиобуй, и использование RadioGroup может быть не очень хорошим, когда требуется только один радиобуй. Да, это может быть простой способ, но в моем списке будет больше предметов, будет создано больше радиогрупп. Использование radioGroup будет моим последним, чтобы это сделать. Спасибо. – IamExpo

+0

Несомненно, сэр, я буду иметь в виду это в следующий раз. Я ценю ваши предложения. Спасибо. – IamExpo

+0

Добро пожаловать, надеюсь, вы найдете эффективное решение! :) –

1

enter image description here

я сделал с моей стороны и отправил Полный Исходный код на моем Android Блог для справки.

http://amitandroid.blogspot.in/2013/03/android-custon-single-choice-lsitview.html

Надежда этот блог поможет вам.

Спасибо, Ваш отзыв будет оценен.

Если это сообщение соответствует вашим требованиям, пожалуйста, примите мой ответ.

+0

Спасибо Амит за сообщение, но я думаю, что более важно, чтобы мы справлялись с этими вещами без такой помощи. Я попытался, и я выполнил задание. Мне не нужны ваши учебные пособия. В будущем, если я где-нибудь застрял, я буду искать его. Еще раз спасибо Амит.Мы будем поддерживать связь. – IamExpo

Смежные вопросы