我想在android应用程序中编辑运行时的微调器值

时间:2010-12-29 05:24:12

标签: android spinner

Hai,我想在android应用程序的运行时编辑微调器值

5 个答案:

答案 0 :(得分:4)

如果你的意思是填充Spinner值运行时:没有什么特别的东西像那样:

1)实例化Spinner到xml资源

2)通过Activity.findViewById()

获取对Spinner对象的引用

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_itemsimple_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.