我有一个20个按钮作为数组,我也显示在屏幕上,但现在我想限制用户一次只点击一个按钮,所以无论如何这样做??按钮阵列
注:我知道我可以使用RadioButtons,但我需要Buttons数组,因为我的应用程序有点像日历视图(考虑日历视图,我们可以使用Button显示“Day”值,然后将日值为1,2,3,4 ...... 31),现在由于用户每次只能选择日期,同样的方式,我希望一次只能点击一个按钮。
请理解我的要求。
我有一个20个按钮作为数组,我也显示在屏幕上,但现在我想限制用户一次只点击一个按钮,所以无论如何这样做??按钮阵列
注:我知道我可以使用RadioButtons,但我需要Buttons数组,因为我的应用程序有点像日历视图(考虑日历视图,我们可以使用Button显示“Day”值,然后将日值为1,2,3,4 ...... 31),现在由于用户每次只能选择日期,同样的方式,我希望一次只能点击一个按钮。
请理解我的要求。
你一直在回应,单选按钮不是一个选项,但实际情况是,你问的是RadioGroup的Radio Buttons设计的目的。
你可以用一个按钮数组来做到这一点,我可以解释你将如何做,但我会向你解释如何编写一个毫无意义的RadioGroup类。
如果'需求'(你没有解释)不需要用于RadioButtons的默认小圆圈,然后派生自己的RadioButton子类与自定义图形,看起来像一个正常的按钮,然后创建一个RadioGroup处理一切。
使用单选按钮,你所描述的是RadioButton存在的目的。
我不熟悉的Android,我很害怕,但这里的关键词是 “单选” - 您应该尝试给这组按钮radio
属性。
正如我在一些评论中指出的那样,您可以使用ToggleButton而不是Button类。
I.e.
List<ToggleButton> buttonList = new List<ToggleButton>();
// Add your buttons here
buttonList.add(btn1);
buttonList.add(btn2); // etc
CompoundButton.OnCheckedChangeListener toggleListener = new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
foreach(ToggleButton button : buttonList) {
if(button==buttonView) {
// That's the button which got clicked, enable the toggle
button.setChecked(isChecked);
} else {
// That's all the other not-clicked on buttons, disable their toggle
button.setChecked(false);
}
}
}
}
foreach(ToggleButton button : buttonList) {
// Now set the Listener from above to each of the buttons
button.setOnCheckedChangeListener(toggleListener);
}
这应该做的伎俩,在编译/语法错误无法检查在这里,因为我在工作中:P
编辑: 刚才忘了添加代码设置新创建的听众所有的按钮
你的问题并不是全部清楚。你不会*选择一个按钮,你*点击*它,然后发生一些事情。根据定义(忽略多点触摸),您一次只能单击一个按钮。如果你想要*选择一个“按钮”,你真正想要的是一个复选框或单选按钮(如下面几个答案所建议的)。如果这不是你想要的,请更好地澄清你的问题。 – Nailuj 2010-11-26 09:27:23
@Nailuj我用“点击”修改了这个问题,好吧 – 2010-11-26 11:09:14
大家都在关注RadioButtons,我也提到过我必须拥有按钮数组,但没有人确切得到。我的运气不好 – 2010-11-26 11:09:48