Похоже, хорошая возможность использовать AlertDialog .
Как ни странно, в Android нет встроенного диалога для этого (насколько я знаю). К счастью, это просто небольшая дополнительная работа над созданием стандартного AlertDialog. Вам просто нужно создать EditText, чтобы пользователь мог вводить данные, и установить его как представление AlertDialog. При необходимости вы можете настроить разрешенный тип ввода, используя setInputType .
Если вы можете использовать переменную-член, вы можете просто установить для переменной значение EditText, и оно сохранится после закрытия диалогового окна. Если вы не можете использовать переменную-член, вам может понадобиться прослушиватель для отправки строкового значения в нужное место. (Я могу редактировать и уточнять больше, если это то, что вам нужно).
В вашем классе:
private String m_Text = "";
В OnClickListener вашей кнопки (или в функции, вызываемой оттуда):
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title");
// Set up the input
final EditText input = new EditText(this);
// Specify the type of input expected; this, for example, sets the input as a password, and will mask the text
input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
builder.setView(input);
// Set up the buttons
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
m_Text = input.getText().toString();
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.show();
global Context, Context cont;
и заменить, заменить "это" в алертиалдиалог наcont
. AlertDialog.Builder builder = новый AlertDialog.Builder (продолжение); окончательный ввод EditText = новый EditText (продолжение);Я добавлю к ответу @ Аарона подход, который даст вам возможность лучше оформить диалоговое окно. Вот скорректированный пример:
Вот пример макета, использованного для создания диалога EditText:
Конечный результат:
источник
getView()
с ,findViewById(android.R.id.content)
и это все работало как шарм. Большое спасибо за то, что поделились :)(ViewGroup)
!@dimen/content_padding_normal
?Как насчет этого ПРИМЕРА ? Это кажется простым.
источник
Если вы хотите , чтобы некоторые места в
left
иright
из точкиinput
зрения, вы можете добавить некоторое дополнение , какdimens.xml
Надеюсь, это поможет
источник
resources
?Я нашел его более понятным и более пригодным для повторного использования
AlertDialog.Builder
для создания собственного диалогового класса. Это для диалога, который просит пользователя ввести номер телефона. Предварительно установленный номер телефона также можно получить, позвонивsetNumber()
до звонкаshow()
.InputSenderDialog.java
dialog_input_sender_number.xml
Использование:
источник
@LukeTaylor: У меня сейчас такая же задача (создание всплывающего окна / диалогового окна, содержащего EditText).
Лично я считаю, что полностью динамический маршрут несколько ограничивает креативность.
ПОЛНОСТЬЮ ПОЛЬЗОВАТЕЛЬСКОЕ РАСПОЛОЖЕНИЕ ДИАЛОГА:
Вместо того, чтобы полностью полагаться на Код для создания Диалога, вы можете полностью настроить его следующим образом:
1) - Создайте новый
Layout Resource
файл. Он будет действовать как ваш Диалог, предоставляя полную свободу творчества!ПРИМЕЧАНИЕ. См. Рекомендации по проектированию материалов, чтобы обеспечить чистоту и актуальность.
2) - Дайте идентификаторы всем вашим
View
элементам. В приведенном ниже примере кода у меня есть 1EditText
и 2Buttons
.3) Создайте
Activity
с собойButton
, для целей тестирования .. Мы сделаем так, чтобы он раздулся и запустил ваш диалог!Кусок пирога! Полная творческая свобода! Просто неукоснительно следуйте Руководству по материалам;)
Надеюсь, это кому-нибудь поможет! Дайте мне знать, что вы, ребята, думаете!
источник
Это работа для меня
Как позвонить? (Название текущей деятельности)
showForgotDialog (current_activity_name.this);
источник