Hai,我想在android应用程序的运行时编辑微调器值
答案 0 :(得分:4)
如果你的意思是填充Spinner值运行时:没有什么特别的东西像那样:
1)实例化Spinner
到xml资源
2)通过Activity.findViewById()
3)为你的微调器定义Adapter
:
ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(context, android.R.layout.simple_spinner_item)
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
4)通过adapter.add()
如果您的意思是将Spinner值编辑为EditText
,那就有点复杂了。
i)您需要定义自己的样式而不是内置样式simple_spinner_item
和simple_spinner_dropdown_item
,例如:
<?xml version="1.0" encoding="utf-8"?>
<!--
~ my_simple_spinner_item.xml
-->
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mySimpleSpinnerItem"
style="?android:attr/mySpinnerItemStyle"
android:singleLine="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
ii)然后将这些样式应用到Spinner
从未检查但应该有效,至少我曾经以这种方式为我的Spinner重新定义样式。
答案 1 :(得分:1)
致电setSelection()
以更改Spinner
中的所选项目。否则,Android中就没有“可编辑的”Spinner
这样的东西。
答案 2 :(得分:1)
在我的问题中: Android editable spinner plus virtual keyboard - is it possible? 我为可编辑的微调器放置了工作代码。唯一的问题是虚拟键盘存在。
答案 3 :(得分:1)
我希望它对你有所帮助。
试试此代码..
public class MainActivity extends Activity {
Spinner sp;
EditText et;
List<String> li;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
li=new ArrayList<String>();
li.add("Item 1");
li.add("Item 2");
li.add("Item 3");
sp=(Spinner) findViewById(R.id.spinner1);
Button b=(Button) findViewById(R.id.button1);
et=(EditText)findViewById(R.id.editText1);
add();
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
li.add(et.getText().toString());
et.setText(null);
add();
}
});
}
private void add() {
ArrayAdapter<String> adp=new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line,li);
adp.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
sp.setAdapter(adp);
}
}
答案 4 :(得分:1)
短&amp;简单的回答:
final Spinner team = (Spinner) findViewById(R.id.team_name);
team.setSelection(5); // To set 6th value in the list.