Скажите: «Я хочу, чтобы пользователи выбирали из выпадающего списка при заполнении формы, например «Пол». Могу ли я добиться именно того, что изображено на прикрепленном изображении? Если да, то как?
используйте счетчик и добавьте фон так же, как edittext. вы получите тот же эффект.
Spinner
это праздное решение для этого, так как это пол, и вы не вводите его вручную. Вы можете изменить внешний вид Spinner ИЛИ Вы можете использовать ListPopUpWindow
вместо Spinner
Вы можете использовать счетчик с пользовательским стилем stackoverflow.com/a/37859442/5815673 или установить возможность рисования в соответствии с вашими требованиями в EditText и щелкнуть всплывающее меню или любой список в соответствии с вашими требованиями.
Спиннер - лучшее решение.
@ Rohit5k2, я думал, что не смогу добиться этого с помощью счетчика.
@ Tee-Boi - Spinner предназначен для того же сценария, который вы ищете.
@ADM Эта ссылка была просто идеальной для меня ... Большое спасибо.
@Rohit5k2, Да я только сейчас это понял
Я думаю, это должно сделать:
XML-файлы должны быть:
<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/sex"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"></AutoCompleteTextView>
</LinearLayout>
И MainActivity.java
должен быть
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
public class MainActivity extends Activity {
String[] sex = { "Male", "Female" };
@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, sex);
//Find TextView control
AutoCompleteTextView acTextView = (AutoCompleteTextView) findViewById(R.id.sex);
//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);
}
}
Спасибо за это, я действительно благодарен. Но я не просто хочу, чтобы пользователь что-то печатал. Я хочу, чтобы пользователь щелкнул текст редактирования и выбрал свой пол.
Тогда вам следует использовать спиннер.
Вы можете добавить изображение стрелки как drawable-right/drawable-end. Установите фокусируемые свойства и видимость курсора в false, а при нажатии кнопки «Редактировать текст» откроется диалоговое окно со списком. Для фона используйте тот же фон, который вы используете для текста редактирования адреса электронной почты. Ниже приведен пример XML-кода
<EditText
android:id = "@+id/etCustomerType"
android:layout_width = "match_parent"
android:layout_height = "@dimen/_40sdp"
android:layout_marginStart = "@dimen/_15sdp"
android:layout_marginEnd = "@dimen/_15sdp"
android:backgroundTint = "@color/editTextTextColor"
android:cursorVisible = "false"
android:drawableEnd = "@drawable/ic_dropdown"
android:drawableRight = "@drawable/ic_dropdown"
android:drawablePadding = "@dimen/_10sdp"
android:focusable = "false"
android:focusableInTouchMode = "false"
android:paddingStart = "@dimen/_10sdp"
android:paddingEnd = "@dimen/_10sdp"
android:textColor = "@color/editTextTextColor"
android:textColorHint = "@color/editTextTextColor"
android:textCursorDrawable = "@color/editTextTextColor"
android:textSize = "@dimen/textSizeXSmall" />
Почему не спиннер?