如何在android中动态添加复选框

hem*_*mar 15 android

我需要在android中动态创建edittext字段.我已经浏览了链接,并为其编写了按钮单击操作.那是当我点击按钮时,必须显示复选框.但是当我在onclick操作中创建checkbox对象时,它显示错误.

有人可以告诉我为什么会出现错误?

我的代码:

public class InflationActivity extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ScrollView sv = new ScrollView(this);
    final LinearLayout ll = new LinearLayout(this);
    ll.setOrientation(LinearLayout.VERTICAL);
    sv.addView(ll);

    TextView tv = new TextView(this);
    tv.setText("Dynamic layouts ftw!");
    ll.addView(tv);

    EditText et = new EditText(this);
    et.setText("weeeeeeeeeee~!");
    ll.addView(et);

    Button b = new Button(this);
    b.setText("I don't do anything, but I was added dynamically. :)");
    ll.addView(b);



    b.setOnClickListener(new View.OnClickListener() {

     @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

        for(int i = 0; i < 20; i++) {
         CheckBox ch = new CheckBox(this);
         ch.setText("I'm dynamic!");

            ll.addView(ch);
        }


        }
    });


    this.setContentView(sv);

   }
 }
Run Code Online (Sandbox Code Playgroud)

Han*_*nry 29

只需改变你的听众(完全正常,我已经尝试过):

b.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        for(int i = 0; i < 20; i++) {
            CheckBox cb = new CheckBox(getApplicationContext());
            cb.setText("I'm dynamic!");
            ll.addView(cb);
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

请注意两个变化:

  1. View.OnClickListenerOnClickListener
  2. new CheckBox(this)new CheckBox(getApplicationContext())