RadioGroup radioGroup = (RadioGroup) findViewById(R.id.orientation);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
{
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.horizontal:
group.setOrientation(LinearLayout.HORIZONTAL);
break;
case R.id.vertical:
group.setOrientation(LinearLayout.VERTICAL);
break;
}
}
});
什么是radioGroup.setOnCheckedChangeListener?这是一种方法吗?那么它的论点是什么?
答案 0 :(得分:3)
setOnCheckedChangeListener()
是一种设置侦听特定操作的侦听器的方法。
这个想法是这样的:
当用户更改选择时,您希望单选按钮执行某些操作。
只要选择更改,系统就会告诉单选按钮。如果单选按钮具有侦听器集,则侦听器“侦听”该事件 - 有一种机制通过调用其方法onCheckedChanged()
来执行某些操作
您应该意识到在事件发生的那一刻调用了onCheckedChanged()
,而不是在将侦听器传递给setOnCheckedChangeListener()
方法时 - 所以不是在您的代码时示例叫做!
需要使用类new RadioGroup.OnCheckedChangeListener()
来传递侦听器的行为 - 包括Java 7,您不能只传递没有类的方法。从Java 8开始,您可以使用lambda expressions更轻松地完成它,但现在不用担心它。
这是一个非常高级的主题,我建议你先研究一下:
你可以用简化的方式思考它。您的代码具有以下含义:
亲爱的
radioGroup
,
每当检查更改时你应该做的事情是:
- 如果选择“水平”,则 致电
group.setOrientation(LinearLayout.HORIZONTAL)
- 如果选择“垂直”,则 致电
group.setOrientation(LinearLayout.VERTICAL)
N.B。 不要这样做现在,只有在检查更改后才