在Android中,我想使用Spinner(当用户尚未进行选择时)显示文本"Select One".当用户单击微调器时,将显示项目列表,并且用户选择其中一个选项.用户进行选择后,所选项目将显示在微调器中,而不是"选择一个".
我有以下代码来创建一个Spinner:
String[] items = new String[] {"One", "Two", "Three"};
Spinner spinner = (Spinner) findViewById(R.id.mySpinner);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)
使用此代码,最初显示项目"One".我可以在项目中添加一个新项目"Select One",但是"Select One"也会在下拉列表中显示为第一项,这不是我想要的.
我该如何解决这个问题?
是否有提示类似于为编辑文本字段提供的提示的微调器.我知道您可以使用一个提示标题栏的提示,但仍然将初始微调器字段留空,直到您单击进入微调器.我目前有一种粗略的方法是将一个虚拟字段设置为微调器数组的第一部分,这是问题,然后在末尾检查以确保微调器不等于问题字符串.有没有更干净/更好的方法呢?
谢谢!
我想显示性别选择的下拉列表.我传递了一个字符串数组
String arr[]=new String[]{"male","female"};
Run Code Online (Sandbox Code Playgroud)
但问题是显示默认选择的值为,"male"我想显示"Gender"为默认值.如果我在位置0的数组中传递"Gender",那么它也会在下拉列表中显示.我只想要"性别"作为提示,但不能在下拉列表中显示.
任何人都可以告诉我如何做到这一点.提前致谢.
我发现这个解决方法是为下拉式微调器添加提示.它看起来很有前景,但是我没有得到我想要的字符串来显示在微调器中,我得到的东西看起来像我的包名(看不到全名).

@IsaacCisneros创建了新的SpinnerItem和MySpinnerAdapter类.我完全实现了他的新课程.我的实现看起来像这样:
ArrayList<SpinnerItem> credValues = new ArrayList<SpinnerItem>();
credValues.add(new SpinnerItem("3.0",false));
credValues.add(new SpinnerItem("Credit", true));
MySpinnerAdapter adapter_cred = new MySpinnerAdapter(this.getActivity(),
android.R.layout.simple_spinner_item, credValues);
adapter_cred.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner spinCred = (Spinner)rootView.findViewById(R.id.cred_spinner);
spinCred.setAdapter(adapter_cred);
spinCred.setSelection(credValues.size() - 1);
Run Code Online (Sandbox Code Playgroud)
他看起来像这样:
ArrayList<SpinnerItem> items = new ArrayList<SpinnerItem>();
items.add(new SpinnerItem("Item 1", false));
items.add(new SpinnerItem("Item 2", false));
items.add(new SpinnerItem("HINT", true)); // Last item
MySpinnerAdapter adapter = new MySpinnerAdapter(this, android.R.layout.simple_spinner_item, items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setSelection(items.size() - 1);
Run Code Online (Sandbox Code Playgroud)
那为什么我的表演很怪异?我的代码的上下文是我的活动中的AddItemFragment的onCreateView.我引用的错误是什么?谢谢!
编辑:请求适配器类代码...
class SpinnerItem {
private final String text;
private final boolean isHint;
public SpinnerItem(String strItem, boolean flag) …Run Code Online (Sandbox Code Playgroud)