【发布时间】:2012-03-10 12:10:31
【问题描述】:
我有 2 个单选按钮和 4 个复选框,我想保持计数。当您选择单选按钮 1 时,您应该只能选择 3 个复选框。 以下是我的代码。我尝试了 Newts 的逻辑,但计数不正确...求助!
RadioButton radio3, radio6;
int count=0;
int pubsSelected=0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
radio3 = (RadioButton) findViewById(R.id.radio0);
radio6 = (RadioButton) findViewById(R.id.radio1);
//---RadioButton1---
radio3.setOnClickListener(new RadioGroup.OnClickListener() {
public void onClick(View v){
int pubsSelected = 3;
int count=0;
DisplayToast("RadioButton is checked" +" "+ pubsSelected); }
});
//---RadioButton2---
radio6.setOnClickListener(new RadioGroup.OnClickListener() {
public void onClick(View v){
int pubsSelected = 6;
int count=0;
DisplayToast("RadioButton is checked" + " "+ pubsSelected); }
});
//---CheckBox 1---
CheckBox checkBox = (CheckBox) findViewById(R.id.checkBox1);
checkBox.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v) {
while(count < pubsSelected ) {
if (((CheckBox)v).isChecked())
count++;
DisplayToast("CheckBox is checked" + " " + count);
}
}} );
//---CheckBox 2---
CheckBox checkBox2 = (CheckBox) findViewById(R.id.checkBox2);
checkBox2.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v) {
while(count < pubsSelected) {
if (((CheckBox)v).isChecked())
count++;
DisplayToast("CheckBox is checked" + " " + count);
}
}});
//---CheckBox 3---
CheckBox checkBox3 = (CheckBox) findViewById(R.id.checkBox3);
checkBox3.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v) {
while(count < pubsSelected) {
}
if (((CheckBox)v).isChecked())
count++;
DisplayToast("CheckBox is checked" + " " + count);
}
});
//---CheckBox 4---
CheckBox checkBox4 = (CheckBox) findViewById(R.id.checkBox4);
checkBox4.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v) {
if (pubsSelected==3){
DisplayToast( "you have selected" + pubsSelected );
}
else{
if (pubsSelected==6){
DisplayToast(" you have selected" + pubsSelected );
}
}}});
}
private int DisplayToast(String msg)
{
Toast.makeText(getBaseContext(), msg,
Toast.LENGTH_SHORT).show();
return count;
}
}
【问题讨论】:
-
你能解释一下你说你“卡住”的意思吗?究竟是什么问题以及目前正在发生什么?
-
@koopaking3 我修改了下面的代码,不是发生的事情是,如果我选择单选按钮 1 并选择一个复选框,它会显示消息“复选框 1、2、3 已选中,但事实并非如此真正的原因是我只选中了一个复选框。我希望能够检查 3,但它不允许我检查 4。
-
所以卡住的意思是我很困惑或错过了 pubs 选择值计数器
标签: android eclipse radio-button checkbox radio-group