2015-06-25 15 views
7

Ho un edittext che ottiene i valori dall'utente. Voglio aggiungere un'opzione che consente all'utente di scegliere tra diverse opzioni tramite l'elenco a discesa quando si fa clic su edittext. Qualcuno ha un'idea di come farlo?android edittext con elenco a discesa

Questo è il codice EditText:

<EditText 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:inputType="textPersonName" 
    android:ems="10" 
    android:id="@+id/dish_quantity" 
    android:layout_below="@+id/dish_name" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:hint="Quantity" /> 

voglio farlo sembrare come questo:

enter image description here

+0

che si chiama AutoCompleteTextView in Android –

risposta

2

activity_main.xml

<RelativeLayout xmlns:androclass="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="15dp" 
     android:text="@string/what_is_your_favourite_programming_language_" /> 

    <AutoCompleteTextView 
     android:id="@+id/autoCompleteTextView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/textView1" 
     android:layout_marginLeft="36dp" 
     android:layout_marginTop="17dp" 
     android:ems="10" 
     android:text=""> 

     <requestFocus /> 
    </AutoCompleteTextView> 

</RelativeLayout> 

MainActivity.java

import android.os.Bundle; 
import android.app.Activity; 
import android.graphics.Color; 
import android.view.Menu; 
import android.widget.ArrayAdapter; 
import android.widget.AutoCompleteTextView; 

public class MainActivity extends Activity { 
    String[] language ={"C","C++","Java",".NET","iPhone","Android","ASP.NET","PHP"}; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     //Creating the instance of ArrayAdapter containing list of language names 
      ArrayAdapter<String> adapter = new ArrayAdapter<String> 
      (this,android.R.layout.select_dialog_item,language); 
     //Getting the instance of AutoCompleteTextView 
      AutoCompleteTextView actv= (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1); 
      actv.setThreshold(1);//will start working from first character 
      actv.setAdapter(adapter);//setting the adapter data into the AutoCompleteTextView 
      actv.setTextColor(Color.RED); 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 

} 
+0

no la sua vista non automatica in vista elenco come solo il valore selezionato ci sono –

+0

Spiacente, non ti ho preso. Si prega di elaborare. –

+0

check question i edit it –

15

Penso che questo sia il vostro requisito:

basta seguire questo esempio: Xml: -

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
<AutoCompleteTextView 
    android:id="@+id/languages" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"></AutoCompleteTextView> 
</LinearLayout> 

attività: -

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 
import android.widget.AutoCompleteTextView; 

public class MainActivity extends Activity { 

    String[] languages = { "C","C++","Java","C#","PHP","JavaScript","jQuery","AJAX","JSON" }; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
       //Create Array Adapter 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.select_dialog_singlechoice, languages); 
       //Find TextView control 
     AutoCompleteTextView acTextView = (AutoCompleteTextView) findViewById(R.id.languages); 
     //Set the number of characters the user must type before the drop down list is shown 
       acTextView.setThreshold(1); 
       //Set the adapter 
     acTextView.setAdapter(adapter); 
    } 
} 

Demo: -

enter image description here

+0

non voglio semplicemente digitare l'edittext che voglio ottenere sul valore dalla lista quando clicco sul testo di modifica questo elenco si apre .èun modo per farlo –

+0

questo è anche lo stesso come il tuo requisito giusto? – RaMeSh

+0

Prima di tutto il tuo selettore di date non è un edittext, perché vuoi che il testo di modifica scenda. – RaMeSh

Problemi correlati