У меня есть edittext, который получает значения от пользователя. Я хочу добавить опцию, которая позволяет пользователю выбирать из разных вариантов через раскрывающийся список при нажатии edittext. Кто-нибудь есть идея, как это сделать?
Это код 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" />
Я хочу, чтобы это выглядело так:
Я думаю, что это ваше требование:
Просто следуйте этому примеру: 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>
Мероприятия:-
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); } }
Демонстрация: –
На Android это называется autocompletetextview
Официальный документ Google: http://developer.android.com/reference/android/widget/AutoCompleteTextView.html
Пожалуйста, проверьте это, учебник http://www.tutorialspoint.com/android/android_auto_complete.htm
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; } }
Я думаю, что то, что вы ищете, может быть сделано с помощью Spinner вместо EditText.
Вот подробное объяснение того, как его использовать.