android - 如何将微调器中的第一个值(默认值)设置为空

标签 android android-spinner default-value dropdown

如何将微调器中的第一个值(默认值)设置为空。意思是,在用户从列表中选择值之前,微调器将没有任何值。我在下面试过

list.add(""); 

但是,这是行不通的。下面是我的代码:

if(values.contains("options")){
       spinner.setOnItemSelectedListener(MyClass.this);
       List<String> list = new ArrayList<String>();
       list.add("");
       list.add("Test");
       list.add("Working");
       ArrayAdapter<String> adapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_spinner_item, list) {};

      adapter.setDropDownViewResource(R.layout.custom_spinner_list);
      spinner.setAdapter(adapter);     
   }
 }

最佳答案

我找到了方法。这是我们如何做的,让最后一行成为

list.add("");

并添加以下代码:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_spinner_item, list) {

                        @Override
                        public View getView(int position, View convertView, ViewGroup parent) {

                                View v = super.getView(position, convertView, parent);
                                if (position == getCount()) {
                                    ((TextView)v.findViewById(android.R.id.text1)).setText("");
                                    ((TextView)v.findViewById(android.R.id.text1)).setHint(getItem(getCount())); //"Hint to be displayed"
                                }

                                return v;
                            }       

                            @Override
                            public int getCount() {
                                return super.getCount()-1;            // you don't display last item. It is used as hint.
                            }

                    };


                    adapter.setDropDownViewResource(R.layout.custom_spinner_list);
                    spinner.setAdapter(adapter);
                    spinner.setSelection(adapter.getCount());        //set the hint the default selection so it appears on launch.
                    spinner.setOnItemSelectedListener(this);
                    notifyDataSetChanged();        

关于android - 如何将微调器中的第一个值(默认值)设置为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32585234/

相关文章:

java - 应用关闭时通知仍然出现

java - 最后选择的选项将转到微调器选项的顶部

androidx 与 Spinner 和自定义对象的数据绑定(bind)

android - 关于 AsyncTask.get()

android - 意外的顶级异常 : com. android.dex.DexIndexOverflowException 合并依赖项

android - 自定义 ArrayList 适配器 - 在 ActionBar 列表中显示图标

java - 无法在对话框中显示 Spinner DropDown 列表

sql-server-2005 - SQL Server 2005 使用列默认值范围创建表

java - 如何使用 Hibernate 设置默认实体属性值

reactjs - react 日期选择器中的默认值