使用Android中的Java以编程方式创建和验证复选框

时间:2011-09-28 11:15:57

标签: android android-checkbox

我需要使用Java以编程方式创建一些复选框,检查是否已选中其中一个复选框,当我单击下一步按钮时,控件将移至下一页。如果未选中任何一个,则必须显示Toast消息。请建议我是Android新手。

这是我的代码:

public class TestValidCheckboxActivity extends Activity implements OnCheckedChangeListener{

private RelativeLayout layoutMiddle = null;
private TableLayout layout1;
private CheckBox chk;
private  String[] resarr = {"silu", "pinky", "meera"};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    layoutMiddle = (RelativeLayout)findViewById(R.id.layoutMiddleUp);
    layout1 = (TableLayout)findViewById(R.id.tableId1);
    final Button btnNext = (Button)findViewById(R.id.btnNext);
    int i = 0;
        for(String res: resarr){
            TableRow tr=new TableRow(this);
                chk=new CheckBox(this);
                chk.setId(i);
                chk.setText(res);
                chk.setTextColor(Color.BLACK);
                tr.addView(chk);
                i++;
            RelativeLayout.LayoutParams lay = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT);
            lay.addRule(RelativeLayout.BELOW, layoutMiddle.getId());
            layout1.addView(tr, lay);
        }
        chk.setOnCheckedChangeListener(new OnCheckedChangeListener()
        {
            @Override
            public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
                // TODO Auto-generated method stub
                if (arg1)
                {
                    btnNext.setOnClickListener(new View.OnClickListener() {
                        public void onClick(final View view) {
                            Log.e("1111111111","111111111");
                                if(chk.isChecked()){
                                    Intent intent = new Intent(view.getContext(),NextPage.class);
                                    startActivityForResult(intent, 0);
                                }else{
                                    Toast msg = Toast.makeText(view.getContext(), "please choose at least one option", Toast.LENGTH_LONG);
                                    msg.show();
                                }

                        }
                    });
                }else{
                    Toast msg = Toast.makeText(TestValidCheckboxActivity.this, "please choose at least one option", Toast.LENGTH_LONG);
                }
            }

        });

    }
    @Override
    public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
    // TODO Auto-generated method stub

    }
}

2 个答案:

答案 0 :(得分:1)

这很容易做到 取一个布尔标志并在checkbox.isChecked();上设置为true(内置) 然后检查是否设置了标志然后导航到下一个TOAST

答案 1 :(得分:0)

您能告诉我们一些布局代码,意思是,xml文件中定义的复选框是否有ID?

如果有,您可以使用findViewByID访问每个人并逐个检查他们的状态。