首先,我希望使用这样的循环取消选中所有8个复选框:
for (int i=1;i<8;++i){
CheckBox view1 = (CheckBox) findViewById(R.id.CheckBox0+String.valueOf(i));
view1.setChecked(false);
}
它不起作用,但你知道我的意思。怎么解决呢?
第二:使用Eclipse我设置了一个表单列表。在应用程序启动时,它会立即显示键盘并在编辑字段中聚焦?我希望键盘仅在用户触摸编辑字段后才会出现。
第三:如何设置编辑字段的属性,当用户触摸输入时,焦点不会传递到下一个编辑字段。提前谢谢。
答案 0 :(得分:3)
首先,一起提出多个问题并不好;当他们只知道其中一个解决方案时,它会阻止人们回答。
1 - 依赖ID [{1}},CheckBox0
,CheckBox1
,......按顺序排列是非常危险的,也是不好的做法。在这种情况下,您应该使用CheckBox2
;这将可靠地获取ID getIdentifier
,然后CheckBox1
等。
CheckBox2
2 - 您需要使用for (int i=1;i<8;++i){
CheckBox view1 = (CheckBox) findViewById(getResources().getIdentifier("CheckBox" + i, "id", getPackageName()));
view1.setChecked(false);
}
修饰符:
stateHidden
3 - 为此使用<activity
android:name="com.example.NoKeyboardActivity"
android:windowSoftInputMode="stateHidden" />
; imeOptions
是您要查找的内容,或者(根据评论),actionNone
启用“完成”按钮。
actionDone
答案 1 :(得分:1)
对于每次构建后具有固定ID的资源,您必须在public.xml中声明资源,然后您可以按顺序访问ID。查看here
R.id.CheckBox0也是一个int,所以
findViewById(R.id.CheckBox0+ i)
在public.xml
中声明所有复选框后对于活动清单中的第二个问题,添加 android:windowSoftInputMode="stateHidden"
第三: 我想你必须在android的布局中引用相同的edittext:nextFocusDown。 不确定这是否有用尝试
答案 2 :(得分:0)
1 - 请记住,这是Java而不是Javascript,你不能这样做(R.id.CheckBox0 + String.valueOf(i))。通常我会创建一个int数组,其中包含所有R.id并循环遍历它们。
2 - 如果键盘已经显示,你也可以使用android:windowSoftInputMode =“stateUnchanged”来隐藏键盘。
3 - 这就是应该的样子,但你可以在edittext上使用属性android:imeOptions =“actionNone”,所以输入按钮什么都不做。