wake-up-neo.com

Wie kann ich den Standardwert für das Dropdown-Menü in Android festlegen?

Ich muss den Standardwert text "select your Device" in meiner Dropdown-Liste für Spinner festlegen. Ich habe es als Listenelement gesetzt, sodass es als Dropdown-Listenelemente fungiert und ich die Dropdown-Liste ausblenden kann Deshalb bekomme ich in meiner Dropdown-Liste ein Leerzeichen.

Wie soll ich das machen?

 Image

dies ist der Code, den ich verwende

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);
7
Nuwan Indika

Soweit ich Ihre Frage verstehe, können Sie Folgendes tun: Überschreiben Sie Spinnerview, indem Sie es die Indexierung von -1 anstelle von 0 starten, damit der erste Eintrag gemacht wird von Array als das, was Sie wollen.

Wählen sie ihren Gerätetyp

In StackOverflow gibt es bereits mehrere Fragen, auf die Sie sich beziehen können. Um diese zu überschreiben, wurde eine verallgemeinerte Lösung vorgeschlagen.

hier

Umgekehrt können Sie auch die benutzerdefinierte Standardposition von Spinner auf Ihre Art einstellen, indem Sie dieses Codefragment verwenden:

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

int spinnerPosition = messgAdap.getPosition(theDefaultValue);

mySpinner.setSelection(spinnerPosition);
7
Prerna Jain

Um ein Element aus der Dropdown-Liste auszuwählen: Direkt nach dem Einstellen des Adapters

spinner.setAdapter(yourAdapter);
spinner.setSelected(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. 
3
yasir khan

sie können wie verwenden,

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) {

         }
      });
2
Amit Vaghela

Verwenden Sie diese Reihenfolge:

    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);
0
Jupiter