android实现ListView中添加RaidoButton单选
7218 点击·0 回帖
![]() | ![]() | |
![]() | import Android.app.Activity; import Android.view.LayoutInflater; import Android.view.View; import Android.view.ViewGroup; import Android.widget.BaseAdapter; import Android.widget.CompoundButton; import Android.widget.CompoundButton.OnCheckedChangeListener; import Android.widget.ImageView; import Android.widget.RadioButton; import Android.widget.TextView; public class RecoverListAdapter extends BaseAdapter { private LayoutInflater inflater; int[] backup_record_item_image; String[] backup_record_item_time; String[] backup_record_item_to; Activity activity; private int temp = -1; public RecoverListAdapter(Activity context, int[] backup_record_item_image, String[] backup_record_item_time, String[] backup_record_item_to) { this.inflater = LayoutInflater.from(context); this.backup_record_item_image = backup_record_item_image; this.backup_record_item_time = backup_record_item_time; this.backup_record_item_to = backup_record_item_to; this.activity = context; } @Override public int getCount() { return backup_record_item_time.length; } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { holder = new ViewHolder(); convertView = this.inflater.inflate(R.layout.general_recover_list_item, null); holder.iv = (ImageView) convertView.findViewById(R.id.backup_record_item_image); holder.tv_time = (TextView) convertView.findViewById(R.id.backup_record_item_time); holder.tv_to = (TextView) convertView.findViewById(R.id.backup_record_item_to); holder.radioButton = (RadioButton) convertView .findViewById(R.id.backup_record_item_btn); holder.radioButton.setChecked(false); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.iv.setImageResource(backup_record_item_image[position]); holder.tv_time.setText(backup_record_item_time[position]); holder.tv_to.setText(backup_record_item_to[position]); //黑体部分为实现单选功能部分 holder.radioButton.setId(position); holder.radioButton.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { if (temp != -1) { RadioButton tempButton = (RadioButton) activity.findViewById(temp); if (tempButton != null) { tempButton.setChecked(false); } } temp = buttonView.getId(); } } }); if (position == temp) { holder.radioButton.setChecked(true); } else { holder.radioButton.setChecked(false); } return convertView; } private class ViewHolder { ImageView iv; TextView tv_time; TextView tv_to; RadioButton radioButton; } } general_recover_list_item.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:layout_width="wrap_content" Android:layout_height="fill_parent"> <RelativeLayout Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:paddingLeft="5dip" Android:paddingRight="5dip" Android:id="@+id/backup_record_item"> <ImageView Android:layout_height="wrap_content" Android:layout_width="wrap_content" Androidrc="@drawable/icon" Android:layout_alignParentLeft="true" Android:id="@+id/backup_record_item_image"/> <LinearLayout Android:layout_height="wrap_content" Android:layout_width="wrap_content" Android:orientation="vertical" Android:layout_toRightOf="@+id/backup_record_item_image" Android:id="@+id/backup_record_item_txt"> <TextView Android:layout_height="wrap_content" Android:layout_width="wrap_content" Android:text="时间" Android:layout_alignTop="@+id/imageView1" Android:layout_alignBottom="@+id/imageView1" Android:id="@+id/backup_record_item_time"/> <TextView Android:layout_height="wrap_content" Android:layout_width="wrap_content" Android:text="备份联系人 到 " Android:layout_toRightOf="@+id/imageView1" Android:layout_alignTop="@+id/imageView1"/> <TextView Android:layout_height="wrap_content" Android:layout_width="wrap_content" Android:text="手机/存储卡" Android:layout_toRightOf="@+id/imageView1" Android:layout_alignTop="@+id/imageView1" Android:id="@+id/backup_record_item_to" /> </LinearLayout> <RadioButton Android:layout_height="wrap_content" Android:layout_width="wrap_content" Android:layout_alignParentRight="true" Android:id="@+id/backup_record_item_btn" /> <CheckBox Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:visibility="gone" Android:text="" Android:id="@+id/backup_record_item_check" /> </RelativeLayout> </LinearLayout> main.xml <LinearLayout Android:layout_width="fill_parent" Android:layout_height="fill_parent" Android:orientation="vertical" Android:id="@+id/recover_items"> <ListView Android:id="@+id/recover_list" Android:cacheColorHint="#00000000" Android:layout_height="match_parent" Android:layout_width="fill_parent"/> <View Android:id="@+id/recover_footer" Android:layout_width="fill_parent" Android:layout_height="40dip" /> </LinearLayout> | |
![]() | ![]() |