如何在Android中设置spinner下拉列表的默认值?

如何在Android中设置spinner下拉列表的默认值?,android,android-spinner,Android,Android Spinner,我需要将默认值文本选择您的设备值设置为我的微调器下拉列表,我将其作为列表项,使其作为下拉列表项,并隐藏下拉列表,因为我在下拉列表中得到一个空格 我该怎么做 这是我使用的代码 mToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar); setSupportActionBar(mToolbar); getSupportActionBar().setDisplayShowHomeEnabled(true);

我需要将默认值文本选择您的设备值设置为我的微调器下拉列表,我将其作为列表项,使其作为下拉列表项,并隐藏下拉列表,因为我在下拉列表中得到一个空格

我该怎么做

这是我使用的代码

mToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
        setSupportActionBar(mToolbar);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setDisplayShowTitleEnabled(false);

        /*Setup a Spinner*/
        mToolbarSpinner = (Spinner) findViewById(R.id.spinner_toolbar);

        /*Manage the spinner*/
        mToolbarSpinnerNavigationItems = new ArrayList<SpinnerNavItem>();

        mToolbarSpinnerNavigationItems.add(new SpinnerNavItem("Select your Seebo", R.drawable.deviceonline));

        /*setting the mToolbarSpinnerNavigationItems to list_item_title_navigation.xml*/
        mArrayAdapter = new ArrayAdapter(this, R.layout.list_item_title_navigation,mToolbarSpinnerNavigationItems){
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {

                // remember to inflate custom layout for spinner item
                // then set anything you want here
                // remember to use convertView.findViewById(), not just findViewById()

                // this is an example
                // inflate layout
                convertView = View.inflate(MainActivity.this, R.layout.list_item_title_navigation, null);
                // get view
                TextView tvText1 = (TextView) convertView.findViewById(R.id.devicetitle);
                ImageView imgIcon = (ImageView) convertView.findViewById(R.id.deviceicon);
                imgIcon.setVisibility(View.GONE);
                //imgIcon.setImageResource(mToolbarSpinnerNavigationItems.get(position).getIcon());
                // set content
                tvText1.setText(mToolbarSpinnerNavigationItems.get(position).getTitle());
                // return
                return convertView;
            }

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

                return convertView;
            }

        };

        //setting adapter to Spinner
        mToolbarSpinner.setAdapter(mArrayAdapter);
你可以用like

final ArrayList<String> strDeviceArr = new ArrayList<>();
      strDeviceArr.add("Select device");
      strDeviceArr.add("Nexus X");
      strDeviceArr.add("Nexus XL");

      spnrDevice.setAdapter(new ArrayAdapter<>(MainActivity.this, R.layout
        .layout_spinner_textview, R.id.textView, strDeviceArr));

      spnrDevice.setSelection(0); //set default selection to 0

      spnrDevice.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
         @Override
         public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            String valueSelected = strDeviceArr.get(position);
         }

         @Override
         public void onNothingSelected(AdapterView<?> parent) {

         }
      });

就我对你的问题的理解而言,你可以做的是覆盖微调器视图,让它从-1开始索引,而不是从0开始索引,从而使数组的第一个条目成为你想要的

选择您的设备

StackOverflow上已经存在多个问题,您可以参考这些问题,为了进行覆盖,我们建议了一个通用的解决方案

参考

或者反过来,您也可以,您自己的方式,使用以下代码片段:

ArrayAdapter<String> spinnerAdap = (ArrayAdapter<String>) mySpinner.getAdapter();

int spinnerPosition = messgAdap.getPosition(theDefaultValue);

mySpinner.setSelection(spinnerPosition);

用于从下拉列表中选择项目: 刚设置完适配器

spinner.setAdapter(yourAdapter);
spinner.setSelection(position);
//position is integer starting from 0 to n-1 (n is number of items in the list or array). This will set nth item as the selected and visible item to the user. 
使用以下顺序:

dropdown                = (Spinner) findViewById(R.id.target_dropdown);
List<String> targetList = new ArrayList<>(targetSet);
targetList.add(0, "Select a device");
ArrayAdapter<String> adapter = new ArrayAdapter<>(
  this,
  android.R.layout.simple_spinner_dropdown_item,
  targetList
);
dropdown.setAdapter(adapter);
dropdown.setSelection(0);
将此选项用于默认选择

请查找下面的代码


下面的检查答案可能重复我尝试了这个,但我没有为我工作。我正在使用DropDown通过这个链接,它会给你清晰的想法…它应该是spinner.setSelectionposition而不是spinner.setSelectedposition。
genderSpinner!!.setSelection(indexNo)
 val arrayAdapter = ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, gender_array)
            genderSpinner!!.adapter = arrayAdapter as SpinnerAdapter?
            genderSpinner!!.setSelection(index_no)
            genderSpinner!!.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
                override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
                    select_gender = parent?.getItemAtPosition(position).toString()
                }

                override fun onNothingSelected(parent: AdapterView<*>?) {

                }
            }