Android 尝试创建微调器数组
我创建了一个微调器数组,但当我在emulator中运行微调器时,就像“隐藏”其他微调器一样。如何设置微调器的位置,使其能够以良好的顺序自动形成。 这是我的密码Android 尝试创建微调器数组,android,spinner,Android,Spinner,我创建了一个微调器数组,但当我在emulator中运行微调器时,就像“隐藏”其他微调器一样。如何设置微调器的位置,使其能够以良好的顺序自动形成。 这是我的密码 Spinner[] arrSpinner = new Spinner[10]; ArrayAdapter arrAdapter[] = new ArrayAdapter[10]; List[] listSoal = new ArrayList[10]; for(int i=0;i<10;i++){
Spinner[] arrSpinner = new Spinner[10];
ArrayAdapter arrAdapter[] = new ArrayAdapter[10];
List[] listSoal = new ArrayList[10];
for(int i=0;i<10;i++){
listSoal[i] = new ArrayList<String>();
listSoal[i].add("Soal "+i);
}
List[] listJawaban = new ArrayList[10];
for(int i=0;i<10;i++){
listJawaban[i] = new ArrayList<String>();
listJawaban[i].add("Pilih Jawaban");
listJawaban[i].add("Pilihan 2");
listJawaban[i].add("Pilihan 3");
listJawaban[i].add("Pilihan 4");
}
int soal = 1;
for(int i=0;i<10;i++){
TextView tv = new TextView(getApplicationContext());
tv.setText("Soal "+soal);
addContentView(tv, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
//addContentView(tv, null);
arrSpinner[i] = new Spinner(this,0);
arrAdapter[i] = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item,listJawaban[i]);
arrSpinner[i].setPrompt("Pilih Jawaban");
addContentView(arrSpinner[i], new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
arrAdapter[i].setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
arrSpinner[i].setOnItemSelectedListener(new SpinnerAction());
arrSpinner[i].setAdapter(arrAdapter[i]);
soal++;
}
Spinner[]arrSpinner=新微调器[10];
ArrayAdapter ArrayAdapter[]=新的ArrayAdapter[10];
List[]listSoal=newarraylist[10];
对于(int i=0;i您正在呼叫
addContentView(tv, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
你把他们都放在同一个位置
如果要将这些内容放入框架布局中,则需要使用类似于MarginLayoutParams
的内容,并为每个视图提供一个上边距,以便将它们隔开
或者,您可以通过将它们放在线性布局中来修复它。您应该将一些线性布局或其他布局作为根布局,以将动态微调器添加为该视图的子级
为此,您必须执行如下操作:View linearLayout=findViewById(R.id.layoutID);
因此,现在您的所有微调器都将是linearLayout的添加子对象
Spinner spinner = new Spinner(this);
spinner .setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
...
...
//then you spinner adapter code
linearlayout1.addView(spinner);
我希望这将帮助您以同样的方式管理动态微调器,即使您没有任何LinearLayout
,也可以动态创建并使用它
LinearLayout linearlayout1 = new LinearLayout(this);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
linearlayout1.setOrientation(LinearLayout.HORIZONTAL);
layoutParams.setMargins(10, 0, 0, 0);
linearlayout1.setLayoutParams(layoutParams );
使用布局的多微调器
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
for (int i = 0; i < 2; i++) {
Spinner spinner = new Spinner(this);
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list.get(i));
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(dataAdapter);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
ll.addView(spinner, params);
}
alert.setView(ll);
LinearLayout ll=新的LinearLayout(本);
ll.设置方向(线性布局、垂直);
对于(int i=0;i<2;i++){
微调器微调器=新微调器(此);
ArrayAdapter dataAdapter=新的ArrayAdapter(此,
android.R.layout.simple_微调器_项,list.get(i));
dataAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉项);
spinner.setAdapter(dataAdapter);
LinearLayout.LayoutParams params=新的LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL\u父级,LinearLayout.LayoutParams.WRAP\u内容);
ll.addView(微调器、参数);
}
警报.setView(ll);
u plz能否显示布局