Skip to content Skip to sidebar Skip to footer

Dynamically Added Checkboxes Shows Only Last Value

Here is my code that results in only last value of Employee List public void addCheckBoxesView() { Employee ee; CheckBox chkbox; ArrayList

Solution 1:

Try this

Layout file

<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/my_root"android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="vertical"></LinearLayout>

MainActivity.xml

    LinearLayout rootLayout = (LinearLayout) findViewById(R.id.my_root);
    LinearLayout sublayout = new LinearLayout(this);
    sublayout.setOrientation(LinearLayout.HORIZONTAL);


    Employee ee;
    CheckBox chkbox;
    ArrayList<Employee> employee_list = new ArrayList<>();
    Employee employee=new Employee();
    employee.setId(1);
    employee.setName("as");
    employee_list.add(employee);

    Employee bb=new Employee();
    bb.setId(4);
    bb.setName("siva");
    employee_list.add(bb);


    Employee hsud=new Employee();
    hsud.setId(16);
    hsud.setName("kumar");
    employee_list.add(hsud);


    for (int i = 0; i < employee_list.size(); i++) {
        ee = (Employee) employee_list.get(i);
        chkbox = new CheckBox(this);
        chkbox.setId(ee.getId());
        chkbox.setText(ee.getName());
        sublayout.addView(chkbox);
    }
    rootLayout.addView(sublayout);

Employee.xml

classEmployee {
        int id;

        public int getId() {
            return id;
        }

        publicvoidsetId(int id) {
            this.id = id;
        }

        publicStringgetName() {
            return name;
        }

        publicvoidsetName(String name) {
            this.name = name;
        }

        String name;
    }

Solution 2:

Try below if it works.

publicvoidaddCheckBoxesView()
     {
         ArrayList<Employee> employee_list= initEmployees();
         for(Employee ee : employee_list)
         {
             CheckBox chkbox = new CheckBox(this);
             chkbox.setId(ee.getID());
             chkbox.setText(ee.getName());
             layout.addView(chkbox);
         }
     }

Post a Comment for "Dynamically Added Checkboxes Shows Only Last Value"