[英]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.