Я разрабатываю Android 2.2 с использованием Java. Я поместил editText в PopupWindow, и он не работает. Он действует как отключенный текст редактирования, нажатие на текст редактирования не отображает программную клавиатуру. Как я могу добавить текст редактирования в popupWindow?
Редактировать текст во всплывающем окне
Ответы (5)
Просто попробуй:
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Title");
alert.setMessage("Message");
// Set an EditText view to get user input
final EditText input = new EditText(this);
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Do something with value!
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});
alert.show();
person
Siten
schedule
23.08.2011
всплывающее окно почти заняло мой день, и мне потребовалась минута, чтобы решить мою проблему, спасибо, приятель
- person Khurram Iqbal; 17.03.2015
Я решил проблему так: поставил popupWindow.setFocusable(true);
и теперь работает. Кажется, что текст редактирования, который был во всплывающем окне, не имел фокуса, потому что всплывающее окно не имело фокуса.
person
Laura
schedule
11.11.2010
Я пытался, как вы предлагаете, но это не помогает.
- person Deepak; 15.06.2012
но все еще есть проблема, которая заключается в том, что при длительном нажатии маркер редактирования текста не появляется и не дает вставки из буфера обмена.
- person Khurram Iqbal; 17.03.2015
Действительно ли в EditText для свойства android:editable установлено значение true? Если это ложь, он будет отключен, как вы описываете.
person
Sinjo
schedule
09.11.2010
popWindow.setFocusable(true);
popWindow.update();
Это будет работать.
person
kamleshwer purohit
schedule
03.04.2015
вызовите этот код из любого слушателя
private void popUpEditText() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Comments");
final EditText input = new EditText(this);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT);
input.setLayoutParams(lp);
builder.setView(input);
// Set up the buttons
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// do something here on OK
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.show();
}
person
Mohan
schedule
02.11.2017