Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态填充android微调器_Android - Fatal编程技术网

动态填充android微调器

动态填充android微调器,android,Android,我在android中创建了一个TextView,如下代码: txtv = new TextView(this); txtv.setText("text"); ll.addView(txtv); 与我创建微调器的方式相同: spinner = new Spinner(this); ll.addView(spinner); 但我无法在微调器上填充值。大多数教程使用ArrayAdapter填充spinner,但它使用xml的id,如R.id…。因为我在创造活力,我不能那样做。如何动态地填充微调器

我在android中创建了一个
TextView
,如下代码:

txtv = new TextView(this);
txtv.setText("text");
ll.addView(txtv); 
与我创建
微调器的方式相同:

spinner = new Spinner(this);
ll.addView(spinner);
但我无法在
微调器上填充值。大多数教程使用
ArrayAdapter
填充
spinner
,但它使用
xml
id
,如
R.id…
。因为我在创造活力,我不能那样做。如何动态地填充
微调器?

您需要获得布局

View linearLayout =  findViewById(R.id.layoutID);
Cerate spinner

   Spinner spinner = new Spinner(this);
//Make sure you have valid layout parameters.
spinner .setLayoutParams(new     LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));

                ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(this,
                        android.R.layout.simple_spinner_dropdown_item, spinnerList);
                spinner.setAdapter(spinnerArrayAdapter);
Then add spinner to view

((LinearLayout) linearLayout).addView(spinner );

您不会在微调器中放置textview。微调器在行中已具有CheckedTextView。这里有一个你可以使用的例子

yourAdapter = new ArrayAdapter<CharSequence>(this, android.R.layout.simple_spinner_item){
            @Override
            public View getDropDownView(int position, View convertView, ViewGroup parent) {
CheckedTextView view = (CheckedTextView) super.getDropDownView(position, convertView, parent);
                return view;
            }
        };

yourSpinner.setAdapter(yourAdapter);
实际上,您并不需要getDropDownView,如果需要定制一点,它只会帮助您。

下面的添加方式

ArrayList<String> list = new ArrayListString();
 list.add("First");
 list.add("Second");
 ArrayAdapter adapter= new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, list); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);    
    spinner.setAdapter(adapter);
ArrayList list=new ArrayListString();
列表。添加(“第一”);
列表。添加(“第二”);
ArrayAdapter=新的ArrayAdapter(这个,android.R.layout.simple\u微调器项目,列表);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
旋转器。设置适配器(适配器);

duplicate我没有android.R.layout.simple\u微调器项目。因为它是动态布局。我有LinearLayout ll=新的LinearLayout(此);ll.设置方向(线性布局、垂直);sv.addView(ll);然后你必须创建一个自定义适配器,你不需要编写android.R.layout.simple\u spinner\u项作为你的布局,你可以创建一个行布局并设置它,然后你可以在getView()中设置内容。你可以跳过该参数,android.R.layout.simple\u spinner\u项是控件的视觉外观,如果你跳过它,控件将看起来像你当前的样式它对我有效,标记为good的答案有一些未声明的变量,使它更难理解
ArrayList<String> list = new ArrayListString();
 list.add("First");
 list.add("Second");
 ArrayAdapter adapter= new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, list); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);    
    spinner.setAdapter(adapter);