我在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}}?
答案 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,只需稍微自定义就可以帮助您。