Насколько я знаю, Layouts
в resources
неизменны. Это означает, что вы должны сделать Views
в динамическом или Java-стиле.
Что вы можете сделать, это использовать класс SecureRandom (точнее, чем Random для выбора случайных чисел), чтобы выбрать случайное число и взять один объект RadioButton из массива RadioButton, который вы создадите.
PoC : Сначала я объясню написанным и протестированным кодом →
import java.util.*;
public class HelloWorld{
static String los1 = "taotao1";
static String los2 = "taotao2";
static String los3 = "taotao3";
static String los4 = "taotao4";
static String[] X = {los1,los2,los3,los4};
public static void main(String []args){
Collections.shuffle(Arrays.asList(X));
System.out.println(Arrays.toString(X));
}
/*
Test 1 : [taotao4, taotao3, taotao2, taotao1]
Test 2 : [taotao2, taotao3, taotao4, taotao1]
Test 3 : [taotao3, taotao4, taotao1, taotao2]
Test 4 : [taotao2, taotao4, taotao1, taotao3]
*/
}
Объяснение : Collections.shuffle
перемешивает объекты в массиве, как вы сможете увидеть, запустив код.
Концептуальный код : Я говорю это концептуально, потому что пишу прямо в блоке ответов стека без тестирования, тест должен быть выполнен вами.
public class NoNotHelloWorld extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
RadioButton r1,r2,r3,r4; //please declare to avoid NullPtr and also declare their functionalities
LinearLayout xyz = (LinearLayout)findViewById(R.id.xyzwhatisthis);
//though unnesseary cast, but I did it.
ArrayList<RadioButton> dydx = new ArrayList<RadioButton>();
dydx.add(r1);
dydx.add(r2);
dydx.add(r3);
dydx.add(r4);
Collections.shuffle(Arrays.asList(arr));
for(RadioButton dxdy : dydx){
xyz.addView(dxdy)
}
}
}
Я думаю, что это должно работать, в противном случае есть поле для комментариев.