0

我需要使用 Java 以编程方式创建许多复选框,检查其中一个是否被选中,当我单击Next 按钮时,控件将移至下一页。如果它们都没有被选中,则必须显示 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

    }
}
4

2 回答 2

1

这可以很容易地完成取一个布尔标志并将其设置为真checkbox.isChecked();(内置)然后检查标志是否设置然后导航到下一个其他 TOAST

于 2011-09-28T11:26:20.500 回答
0

您能否向我们展示您的一些布局代码,意思是,复选框是在 xml 文件中定义的吗?它们是否有 ID?

如果他们这样做,您可以访问它们中的每findViewByID一个并一一检查它们的状态。

于 2011-09-28T11:21:33.637 回答