我陷入了需要获取已检查Radiobutton ID的情况。我知道问题出在哪里,但我无法解决,所以请根据我的代码建议我。
@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;
}
请告诉我如何获得特定的radiobutton。我也想知道为什么getView正常使用,我们如何手动调用该方法。先谢谢你。
答案 0 :(得分:1)
我已经从我这边做了,并在我的Android博客上发布了完整的源代码供参考。
http://amitandroid.blogspot.in/2013/03/android-custon-single-choice-lsitview.html
答案 1 :(得分:0)
你试过RadioGroup吗?它是许多RadioButton
的容器。它甚至有一个名为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)。