2016-07-12 6 views
-1

Ich habe eine editText und ich setze setOnFocusChangeListener, um ein Spinner zu öffnen. Sobald ich ein Element aus dem Drehfeld ausgewählt habe, möchte ich, dass das ausgewählte Element auf demselben Bearbeitungs-Text angezeigt wird.Wie Spinner ausgewähltes Element zu bearbeiten Text auf editTextFocusChange- Android

Unten ist der Code, den ich ausprobiert habe.

List<String> tal = new ArrayList<String>(); 
     tal.add("1"); 
     tal.add("2"); 
     tal.add("3"); 
     tal.add("4"); 
     tal.add("5"); 

     ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, tal); 
     dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner.setAdapter(dataAdapter); 

    editText.setOnFocusChangeListener(new View.OnFocusChangeListener() { 

       @Override 
       public void onFocusChange(View arg0, boolean hasFocus) { 
        // TODO Auto-generated method stub 
        if(hasFocus){ 
         spinner.performClick(); 

        } 
       } 
      }); 
      editText.setText(spinner.getSelectedItem().toString()); //this is taking the first value of the spinner by default. 

Xml:

<EditText 
     android:hint="Select A Value" 
     android:id="@+id/editText" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/rounded_edittext" 
     android:layout_weight="0.05" 
     android:singleLine="true"/> 

<Spinner android:visibility="gone" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/spinner" /> 
+1

Mögliche Duplikate von [Wie kann ich onItemSelected in Android verwenden?] (Http://StackOverflow.com/questions/20151414/how-cani-i-use-onitemselected-in-android) –

Antwort

4

Sie können den Code wie folgt verwenden. Ich für dich getan ..

editText.setOnFocusChangeListener(new View.OnFocusChangeListener() { 

     @Override 
     public void onFocusChange(View arg0, boolean hasFocus) { 
      // TODO Auto-generated method stub 
      if(hasFocus){ 
       spinner.setVisibility(View.VISIBLE); 

      } 
     } 
    }); 

    spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> parent, View view,int position, long id) { 
      editText.setText(spinner.getSelectedItem().toString()); //this is taking the first value of the spinner by default. 

     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 
      // TODO Auto-generated method stub 

     } 
    }); 

Sie nur auf Spinner in Android verwenden OnItemSelectedListener können. Red more from Android Developers. Viel Glück ..

+0

Vielen Dank So viel zum Code. Aber ich denke, dass du die Spinner-Sichtbarkeit festlegen musst, um sie zu verstecken, nachdem die Auswahl getroffen wurde und sie sich im Editiertext widerspiegelt. – ASN

+1

Sie können es ausblenden, indem Sie "spinner.setVisibility (View.GONE)" verwenden Sie können es im anderen Teil von if (hasFocus) { spinner.setVisibility (View.VISIBLE); } else {spinner.setVisibility (View.GONE);} –

Verwandte Themen