Skip to content Skip to sidebar Skip to footer

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:

preview

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?"