Android добавить флажок динамически

Ниже приведены мои макеты xmls. Теперь у нас есть ограниченное количество (семь) флажков в макете (listitem.xml). И мы добавляем его в линейном макете.

main.xml




    

        

        

            
        

    

    




    

    
    

    


listitem.xml




    

        

        
    

    

        

        
    

    

        

        

            

            

            

            

            

            

            
        
    

    

        

        
        
    
 
    
    
    

    


Но согласно новому требованию нам нужно динамически добавлять флажки. Например, нужно извлечь параметры из вызова API и преобразовать их в виде флажков в представлении. Я провел много времени в нем. Может кто-нибудь предложить метод, чтобы решить эту проблему.

Наш макет должен быть таким. В виде списка мы отображаем сведения о сотруднике, и для каждой записи сотрудника квалификация должна быть загружена из вызова API или базы данных.

      [Reviewer Name (Editable)]       
               Employee Lest           
---------------------------------------
Employee1                    [Click Me]

Male (0)          Female ( )
Salary : [5999 (editable)]
Qualification
[X]BA
[ ]BSc
[ ]Matriculation
[ ]Other
[Submit Button]
---------------------------------------
Employee2                    [Click Me]

Male (0)          Female ( )
Salary : [5999 (editable)]
Qualification
[X]BA
[ ]BSc
[ ]Matriculation
[ ]Other
[Submit Button]
---------------------------------------
Employee3                    [Click Me]

Male (0)          Female ( )
Salary : [5999 (editable)]
Qualification
[X]BA
[ ]BSc
[ ]Matriculation
[ ]Other
[Submit Button]
---------------------------------------

Исходный код

private class ListAdapters extends ArrayAdapter {
    private ArrayList items;
    private int position;

    public ListAdapters(Context context, int textViewResourceId,
            ArrayList mTitleList) {
        super(context, textViewResourceId, mTitleList);
        this.items = mTitleList;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;
        this.position = position;
        if (v == null) {
            LayoutInflater inflater = (LayoutInflater) mContext
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = inflater.inflate(R.layout.applicationlistitem, null);
        }

        final ApplicationBean o = (ApplicationBean) items.get(position);

        if (o != null) {

            txtAppName = (TextView) v.findViewById(R.id.app_name);
            txtAppName.setText("" + o.getAppName());
            launchButton = (Button) v.findViewById(R.id.launch_btn);
            launchButton.setTag(position);
            launchButton.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {

                    final PackageManager pm = mContext.getPackageManager();
                    Intent LaunchIntent = pm
                            .getLaunchIntentForPackage(items
                                    .get(Integer.parseInt(v.getTag()
                                            .toString())).getPname());
                    mContext.startActivity(LaunchIntent);

                }
            });
            final LinearLayout failure_reasonslist = (LinearLayout) v
                    .findViewById(R.id.failure_reasonslist);

            rdgPassFail = (RadioGroup) v.findViewById(R.id.status_group);
            rdgPassFail.setTag(position);

            RadioButton passBtn = (RadioButton) v
                    .findViewById(R.id.pass_btn);
            passBtn.setTag(position);
            RadioButton failbtn = (RadioButton) v
                    .findViewById(R.id.fail_btn);
            failbtn.setTag(position);

            rdgPassFail
                    .setOnCheckedChangeListener(new OnCheckedChangeListener() {

                        @Override
                        public void onCheckedChanged(RadioGroup group,
                                int checkedId) {
                            ApplicationBean o = (ApplicationBean) items
                                    .get(Integer.parseInt(group.getTag()
                                            .toString()));

                            switch (checkedId) {
                            case R.id.fail_btn:
                                Log.e("Fail button", "Clicked");
                                o.setFailState(true);
                                o.setPassState(false);
                                numOptions = 0;
                                Log.e("Fail button--1", "Clicked");

                                break;
                            case R.id.pass_btn:
                                Log.e("Pass button", "Clicked");

                                o.setFailState(false);
                                o.setPassState(true);
                                Log.e("Pass button-----1", "Clicked");

                                break;
                            }
                            items.set(Integer.parseInt(group.getTag()
                                    .toString()), o);
                        }

                    });

            LinearLayout featuresTable = (LinearLayout) v.findViewById(R.id.failure_reasonslist);

            // use loop CheckBox feature1 = new CheckBox(this); 
            for(int i = 0; i

Ответы на вопрос(3)

Ваш ответ на вопрос