用户单击微调器时显示对话框

时间:2014-07-04 11:47:22

标签: android dialog spinner

我正在制作一个我有很多微调器的应用程序。我的最小API是15.我想要的是当用户点击微调器时,应该弹出一个对话框而不是下拉列表。我尝试在谷歌上找到它,但对我来说没有成功。我还在某处读到,我可以使用TextView或按钮来显示对话框而不是微调器。

如果用户选择特定值,我该如何获得用户选择的内容?

我想像这样展示我的微调器: enter image description here

我的微调代码:

professionArray = getResources ().getStringArray (R.array.Profession);
    Arrays.sort (professionArray, 1, professionArray.length);
    profession = new ArrayAdapter<String> (c, R.layout.spinner_textview, professionArray);
    profession.setDropDownViewResource (android.R.layout.simple_list_item_single_choice);
    spCategory.setAdapter (profession);

3 个答案:

答案 0 :(得分:1)

您可以像这样更改spinnerMode:

<Spinner
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:spinnerMode="dialog" />

或点击此链接:http://developer.android.com/reference/android/widget/Spinner.html

答案 1 :(得分:0)

参考此链接..

Spinner Basics - Android Example

并阅读本基础

Spinners

这可能对你有帮助..

答案 2 :(得分:0)

@Anuj,希望这有帮助。

布局中的微调器声明

<Spinner
    android:id="@+id/spinner1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:spinnerMode="dialog" 
    android:prompt="@string/your_gender"/>

活动本身的代码

spCategory = (Spinner) findViewById(R.id.spinner1);     
    String[] professionArray = getResources().getStringArray (R.array.Profession);
    Arrays.sort (professionArray, 1, professionArray.length);
    ArrayAdapter<String> profession = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, professionArray);
    profession.setDropDownViewResource (android.R.layout.simple_list_item_1);
    spCategory.setAdapter(profession);

关于检查选择了哪个项目,取决于您要执行的操作: 如果要在选择新项目时随时执行操作,则必须设置OnItemSelectedListener。这可以这样做:

spCategory.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            // TODO Auto-generated method stub
            System.out.println("item selected id = " + arg2 + professionArray[arg2]);
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
    });

此外,如果您想要在选择屏幕上的按钮时检查所选项目。您可以通过调用微调器的getSelectedItemPosition方法来获取所选项目在数组中的位置。 e.g:

int i = spCategory.getSelectedItemPosition();
System.out.println("item id = " + i + professionArray[i]);