Code To Add Both Checkbox And Radiobutton In Same Listview In Android?
I need to add a Checkbox to Listview. How would I add radio buttons and checkboxes to the same listview using android?
Solution 1:
You should make your own List Adapter, something like this:
publicclassRadioCheckAdapterextendsBaseAdapter{
privatefinal RadioCheck[] radiochecks;
RadioCheckAdapter(RadioCheck... radiochecks) {
this.radiochecks = radiochecks;
}
...
@Overridepublic View getView(int position, View convertView, ViewGroup parent) {
ViewGroupitem= getViewGroup(convertView, parent);
RadioCheckradiocheck= radiochecks[position];
CheckBoxcheck= (CheckBox)item.findViewById(R.id.check);
RadioButtonradio= (RadioButton)item.findViewById(R.id.radio);
if (radiocheck.type==0)
{
check.setVisibility(View.VISIBLE);
radio.setVisibility(View.INVISIBLE);
check.setText(radiocheck.name);
radio.setText("");
}
else
{
check.setVisibility(View.INVISIBLE);
radio.setVisibility(View.VISIBLE);
check.setText("");
radio.setText(radiocheck.name);
}
return item;
}
public ViewGroup getViewGroup(View reuse, ViewGroup parent) {
if(reuse instanceof ViewGroup) return (ViewGroup)reuse;
Contextcontext= parent.getContext();
LayoutInflaterinflater= LayoutInflater.from(context);
ViewGroupitem= (ViewGroup)inflater.inflate(
R.layout.radiocheck_item, null);
return item;
}
}
And a layout like this:
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal"android:layout_width="fill_parent"android:layout_height="fill_parent"><CheckBoxandroid:id="@+id/check"android:textSize="20dp"android:layout_width="fill_parent"android:layout_height="wrap_content"
/><RadioButtonandroid:id="@+id/radio"android:textSize="20dp"android:layout_width="fill_parent"android:layout_height="wrap_content"
/></RelativeLayout>
And in your activity:
publicclassMainActivityextendsListActivity
{
@OverrideprotectedvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setListAdapter(newRadioCheckAdapter(
newRadioCheck("Check 1"),
newRadioCheck("Radio 1", 1),
newRadioCheck("Check 2"),
newRadioCheck("Radio 2", 1),
newRadioCheck("Check 3"),
newRadioCheck("Radio 3"),
newRadioCheck("Check 4", 1),
newRadioCheck("Radio 4")));
}
}
-
classRadioCheck {
final String name;
int type=0; // 0: check, 1: radiopublicRadioCheck(String name)
{
this.name= name;
this.type= 0;
}
publicRadioCheck(String name, int type)
{
this.name= name;
this.type= type;
}
}
Post a Comment for "Code To Add Both Checkbox And Radiobutton In Same Listview In Android?"