web-dev-qa-db-fra.com

Comment définir la valeur par défaut sur la liste déroulante dans Android?

Je dois définir la valeur par défaut du texte "sélectionne ton périphérique" dans ma liste déroulante spinner, je le mets comme élément de liste pour qu'il agisse en tant qu'éléments de liste déroulante et que je masque la liste déroulante. , à cause de cela, je reçois un espace vide dans ma liste déroulante.

Comment dois-je faire cela?

 Image

c’est le code que j’ai utilisé

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

D'après ce que je comprends de votre question, vous pouvez utiliser remplacez la Spinnerview en le récupérant commence son indexation de -1 à la place de 0 afin que de tableau pour être celui que vous voulez en tant que.

Sélectionnez votre appareil

Il existe déjà de nombreuses questions sur StackOverflow auxquelles vous pouvez vous référer et pour effectuer le remplacement, une solution généralisée a été suggérée.

Référez-vous ici

Ou l’inverse, vous pouvez également définir la position par défaut personnalisée de spinner , à votre manière, à l’aide de cet extrait de code:

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

int spinnerPosition = messgAdap.getPosition(theDefaultValue);

mySpinner.setSelection(spinnerPosition);
7
Prerna Jain

Pour sélectionner un élément dans la liste déroulante: Juste après le réglage de l'adaptateur

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

vous pouvez utiliser comme,

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

Utilisez cette séquence:

    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