我是android的新手。我只知道C和C ++。我在github引用上看到了for
循环。
for (int clickableId : clickableIds) {
view.findViewById(clickableId).setOnClickListener(this);
}
我用google搜索基于android的循环范围,因为我知道C ++并且在C ++中语法是基于范围的循环。但是,我无法得到任何参考。
所以,
这个for循环有什么作用?
我应该在何时何地使用它?
答案 0 :(得分:2)
这是github中的整个代码:
final int[] clickableIds = new int[]{
R.id.easy_mode_button,
R.id.hard_mode_button,
R.id.show_achievements_button,
R.id.show_leaderboards_button,
R.id.sign_in_button,
R.id.sign_out_button
};
for (int clickableId : clickableIds) {
view.findViewById(clickableId).setOnClickListener(this);
}
这意味着int clickableId
正在遍历数组clickableIds
。所以它输入了第一个R.id.easy_mode_button
然后将调用for循环onclicklistener
方法。
这个for循环称为增强型循环,这是它的语法:
for (int myValue : myArray) {
onClickListener(this) //this means current class is implementing onClickListener.
因此,在进入for循环后,调用onClickListener(this)
并在单击按钮时调用onClick()
。
答案 1 :(得分:0)
这是一个for-each循环。当你看到冒号(:)时,将它读作"在"中。您不必声明迭代器,因此您不必为它提供通用声明(编译器为我们做了)。就像Peter Haddad所说,这意味着clickableId
将逐个获得所有数组clickableIds
值,并将小部件(此处的按钮)设置为可点击。
你应该随时使用for-each循环,它真正美化你的代码。但是你不能每次都使用它,例如,如果程序需要访问迭代器以删除当前元素......