我的单选按钮焦点有问题。另外我知道有很多与类似主题相关的问题,但没有一个涉及单选按钮(主要是微调器有问题)。
让我解释一下:
我有:editText1,editText2,带有两个按钮的水平广播组,之后是更多的editText框。
当我想通过键入文本并转到下一个字段来填充所有信息时出现问题。
当我来到单选按钮1时,我可以使用setOnEditorActionListener轻松请求焦点。但在那之后,我无法请求第二个单选按钮(右侧)的焦点。 键盘只是跳过它,并允许我在无线电组后填充edittext。
有不同的提案,但它们都不符合我的需求。
我试过了: - setOnActionEditor(actionId总是得0) - onKeyListener - 在触摸模式下请求焦点
因此,总结一下:为什么水平放射性组不允许无线电按钮获得焦点?这很奇怪,我尝试了很多东西。
对于长篇文章,我很抱歉,我想要准确。
谢谢!
以下是xml的一部分:
<EditText
android:id="@+id/editTextSurname"
android:layout_width="200dp"
android:layout_height="40dp"
android:inputType="textPersonName" />
<EditText
android:id="@+id/editTextName"
android:layout_width="200dp"
android:layout_height="40dp"
android:layout_below="@id/editTextSurname"
android:layout_marginTop="5dp"
android:inputType="textPersonName" />
<RadioGroup
android:id="@+id/gendersRadioGroup"
android:layout_width="200dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:layout_height="wrap_content"
android:layout_below="@+id/editTextName"
android:focusable="true"
android:orientation="horizontal"
android:focusableInTouchMode="true"
android:singleLine="true"
android:textSize="12sp">
<RadioButton
android:id="@+id/maleRadioButton"
android:layout_width="wrap_content"
android:layout_gravity="center_vertical"
android:layout_height="@dimen/activity_profile_edittext_height"
android:focusable="true"
android:focusableInTouchMode="true"
android:text="@string/male"
android:textColor="@drawable/radiobutton_selector" />
<RadioButton
android:id="@+id/femaleRadioButton"
android:layout_width="wrap_content"
android:layout_marginStart="20dp"
android:layout_height="@dimen/activity_profile_edittext_height"
android:layout_gravity="center_vertical"
android:focusable="true"
android:focusableInTouchMode="true"
android:text="@string/female"
android:textColor="@drawable/radiobutton_selector" />
</RadioGroup>
<EditText
android:id="@+id/dateEditText"
android:layout_width="110dp"
android:layout_height="40dp"
android:layout_below="@+id/gendersRadioGroup"
android:inputType="date" />
答案 0 :(得分:1)
这对我有用
radioGroup.setFocusable(true);
radioGroup.setFocusableInTouchMode(true);
下面的完整代码
RadioGroup radioGroup = new RadioGroup(context);
radioGroup.setOrientation(RadioGroup.VERTICAL);
radioGroup.setFocusable(true);
radioGroup.setFocusableInTouchMode(true);
for (int index = 0; index < choices.length; index++) {
RadioButton radioButton = new RadioButton(context);
radioButton.setText(choices[index].trim());
radioButton.setId(index);
radioGroup.addView(radioButton);
}
答案 1 :(得分:0)
您可以在java文件中使用此代码:
RadioButton radioButton = (RadioButton) findViewById(R.id.maleRadioButton);
radioButton.setFocusable(true);
radioButton.setFocusableInTouchMode(true);