簡體   English   中英

動態填充Android Spinner

[英]Populate android spinner dynamically

我已經在android中創建了TextView ,如下所示:

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

我創建了spinner方法也一樣:

spinner = new Spinner(this);
ll.addView(spinner);

但是我無法在spinner價值。 大多數教程都使用ArrayAdapter填充spinner ,但是它使用的是xml id ,例如R.id.... 由於我是動態創建的,所以我不能那樣做。 如何動態填充spinner框?

波紋管添加

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

您需要獲取布局

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

您無需將文本視圖置於微調器中。 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);

您只需使用即可將字符串添加到適配器

yourAdapter.add("firstRow");

您實際上並不需要getDropDownView,它只是在需要一點自定義的情況下為您提供幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM