我正在制作一个我有很多微调器的应用程序。我的最小API是15.我想要的是当用户点击微调器时,应该弹出一个对话框而不是下拉列表。我尝试在谷歌上找到它,但对我来说没有成功。我还在某处读到,我可以使用TextView或按钮来显示对话框而不是微调器。
如果用户选择特定值,我该如何获得用户选择的内容?
我想像这样展示我的微调器:
我的微调代码:
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);
答案 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)
答案 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]);