0

我有一个具有不同组件(单选按钮、复选框、按钮与)的应用程序。我动态创建了所有这些组件,但现在有一个问题;

当他们创建时,我无法为所有人创建事件。我需要对所有这些事件的单击事件的建议。

原谅我的英语有点糟糕,但提前谢谢你。请帮我

4

2 回答 2

0

您是否尝试在您的活动中实现 onclicklistener ?之后,对于所有组件,您应该设置它们的 onclicklistener。但是有一个重要的一点。单选按钮和复选框有自己的侦听器,“setOnCheckedChangeListener”。我认为你应该使用它。但如果你愿意,你可以像这样实现 OnClickListener。

public class myActivity extends Activity implements OnClickListener {
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

            button1.setOnClickListener(this);
            checkbox1.setOnClickListener(this);
            radiobuton1.setOnClickListener(this);

}

@Override
public void onClick(View v) {
    //You can listen "click event" of button1 ,checkbox1 and radiobutton1 here.

}

}
于 2013-03-11T15:35:30.940 回答
0
RadioButton rb ; 
CheckBox cb;
Button btn;

public void MultiEvent (int clickId ){
    if (clickId == 0) {

    }else if (clickId == 1) {

    }else if (clickId == 2) {

    }
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    rb = (RadioButton)findViewById(R.id.radioButton1);
    cb = (CheckBox)findViewById(R.id.checkBox1);
    btn = (Button)findViewById(R.id.button1);

    btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            int clickId = 0;
            MultiEvent (clickId );
        }
    });

    rb.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            int clickId = 1;
            MultiEvent (clickId );
        }
    });

    cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            // TODO Auto-generated method stub
            int clickId = 2;
            MultiEvent (clickId );
        }
    });


}
于 2013-03-11T15:48:01.933 回答