Fix middle-side radio selection
This commit is contained in:
@@ -17,6 +17,7 @@ import android.view.inputmethod.EditorInfo;
|
|||||||
import android.widget.CheckBox;
|
import android.widget.CheckBox;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
|
import android.widget.RadioButton;
|
||||||
import android.widget.RadioGroup;
|
import android.widget.RadioGroup;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
@@ -859,15 +860,30 @@ public final class LayoutFragment extends Fragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private int resolveLeftSideId(RadioGroup group) {
|
private int resolveLeftSideId(RadioGroup group) {
|
||||||
int id = group.getChildCount() > 0 ? group.getChildAt(0).getId() : View.NO_ID;
|
int id = sideButtonId(group, 0);
|
||||||
return id != View.NO_ID ? id : 0;
|
return id != View.NO_ID ? id : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int resolveRightSideId(RadioGroup group) {
|
private int resolveRightSideId(RadioGroup group) {
|
||||||
int id = group.getChildCount() > 1 ? group.getChildAt(1).getId() : View.NO_ID;
|
int id = sideButtonId(group, 1);
|
||||||
return id != View.NO_ID ? id : resolveLeftSideId(group);
|
return id != View.NO_ID ? id : resolveLeftSideId(group);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int sideButtonId(RadioGroup group, int radioIndex) {
|
||||||
|
int seen = 0;
|
||||||
|
for (int i = 0; i < group.getChildCount(); i++) {
|
||||||
|
View child = group.getChildAt(i);
|
||||||
|
if (!(child instanceof RadioButton)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (seen == radioIndex) {
|
||||||
|
return child.getId();
|
||||||
|
}
|
||||||
|
seen++;
|
||||||
|
}
|
||||||
|
return View.NO_ID;
|
||||||
|
}
|
||||||
|
|
||||||
private void setNumericText(EditText input, int value) {
|
private void setNumericText(EditText input, int value) {
|
||||||
if (input == null) {
|
if (input == null) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
+2
-1
@@ -10,6 +10,7 @@ import android.view.ViewGroup;
|
|||||||
import android.widget.CheckBox;
|
import android.widget.CheckBox;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
|
import android.widget.RadioButton;
|
||||||
import android.widget.RadioGroup;
|
import android.widget.RadioGroup;
|
||||||
import android.widget.ScrollView;
|
import android.widget.ScrollView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
@@ -775,7 +776,7 @@ abstract class LockedSceneLayoutFragment extends Fragment {
|
|||||||
private int firstSideId(RadioGroup group, int rightId) {
|
private int firstSideId(RadioGroup group, int rightId) {
|
||||||
for (int i = 0; i < group.getChildCount(); i++) {
|
for (int i = 0; i < group.getChildCount(); i++) {
|
||||||
View child = group.getChildAt(i);
|
View child = group.getChildAt(i);
|
||||||
if (child.getId() != rightId) {
|
if (child instanceof RadioButton && child.getId() != rightId) {
|
||||||
return child.getId();
|
return child.getId();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user