Lawrence
Lawrence

Reputation: 79

How to add Checkbox in gridview dynamicall in android

Hi Everyone, I want to add checkbox in gridview in android. I have a list to bind the gridview, based on condition i have to add the checkbox in gridview dynamically. I don't want to get any checked item. Just how to show the checkbox inside gridview dynamically.. I used relative layout. I'm new in android application.Pls tell the solution.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_marginRight="10dp"
    android:layout_marginTop="20dp"
    android:layout_toLeftOf="@+id/spinner1"
    android:text="@string/Input_Label" />

<Spinner
    android:id="@+id/spinner1"
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="3dp" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView1"
    android:layout_alignTop="@+id/spinner2"
    android:layout_marginTop="5dp"
    android:text="@string/Input_Label1" />

<Spinner
    android:id="@+id/spinner2"
    android:layout_width="125dp"
    android:layout_height="50dp"
    android:layout_alignLeft="@+id/spinner1"
    android:layout_below="@+id/spinner1"
    android:layout_marginTop="10dp" />




<Button
    android:id="@+id/button1"
    android:layout_width="80dp"
    android:layout_height="50dp"
    android:layout_alignTop="@+id/spinner2"
    android:layout_toRightOf="@+id/spinner2"
    android:text="@string/Input_btn" />

<GridView
    android:id="@+id/gridView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/spinner2"
    android:layout_marginTop="30dp"
    android:layout_toRightOf="@+id/textView2"
    android:numColumns="3" >

</GridView>

**MainActivity.java**

public class MainActivity extends Activity {

private Spinner spinner1, spinner2;
GridView grid;

static final String[] letters = new String[] {

    "A", "B", "C", "D", "E",

    "F", "G", "H", "I", "J",

    "K", "L", "M", "N", "O",

    "P", "Q", "R", "S", "T",

    "U", "V", "W", "X", "Y", "Z"};


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    addItemsOnSpinner1();
    addItemsOnSpinner2();

    Button next = (Button) findViewById(R.id.button1);

    grid = (GridView) findViewById(R.id.gridView1);
    //simple_list_item_multiple_choice
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, letters);

    grid.setAdapter(adapter);
}

public void addItemsOnSpinner1() {

    spinner1 = (Spinner) findViewById(R.id.spinner1);
    List<String> list = new ArrayList<String>();
    list.add("Select");
    list.add("SCUF");
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_spinner_item, list);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner1.setAdapter(dataAdapter);
  }

public void addItemsOnSpinner2() {

    spinner2 = (Spinner) findViewById(R.id.spinner2);
    List<String> list = new ArrayList<String>();
    list.add("Select");
    list.add("Andra Pradesh");
    list.add("Tamilnadu");
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
    android.R.layout.simple_spinner_item, list);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner2.setAdapter(dataAdapter);
  }

}

Upvotes: 1

Views: 1488

Answers (1)

IgorGanapolsky
IgorGanapolsky

Reputation: 26831

Your ArrayAdapter needs to have a getView() method. That is where you can add a checkbox. Something like this:

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null || !(convertView instanceof CheckBox)) {
            CheckBox checkBox = new CheckBox(getContext());
            convertView = checkBox;
        }
        ((CheckBox) convertView).setText(getItem(position));

        return convertView;
    }

Upvotes: 1

Related Questions