动态填充android微调器

时间:2014-03-18 12:35:09

标签: android

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

txtv = new TextView(this);
txtv.setText("text");
ll.addView(txtv); 

我创建spinner

的方式相同
spinner = new Spinner(this);
ll.addView(spinner);

但我无法在spinner上填充价值。大多数教程都使用spinner填充ArrayAdapter,但id xml正在R.id....spinner。由于我正在创造动态,我不能这样做。如何动态填充{{1}}?

3 个答案:

答案 0 :(得分:1)

以下方式添加

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);

答案 1 :(得分:0)

你需要获得布局

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 );

答案 2 :(得分:0)

你不要在微调器中放置textview。 Spinner已经在行内部有一个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);

您只需使用

将String添加到适配器即可
yourAdapter.add("firstRow");

您实际上并不需要getDropDownView,只需稍微自定义就可以帮助您。