EditText во всплывающем окне - PullRequest
       24

EditText во всплывающем окне

14 голосов
/ 09 ноября 2010

Я занимаюсь разработкой на Android 2.2 с использованием Java. Я поместил editText в PopupWindow, и он не работает. Он действует как отключенный текст редактирования, нажатие на текст редактирования не отображает программную клавиатуру. Как я могу добавить текст для редактирования в popupWindow?

Ответы [ 5 ]

44 голосов
/ 23 августа 2011

Просто попробуйте:

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();
17 голосов
/ 11 ноября 2010

Я решил проблему следующим образом: я поставил popupWindow.setFocusable(true); и теперь он работает. Кажется, что текст редактирования, который был во всплывающем окне, не имел фокуса, потому что у всплывающего окна не было фокуса.

0 голосов
/ 02 ноября 2017

вызовите этот код у любого слушателя

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();

    }
0 голосов
/ 03 апреля 2015
popWindow.setFocusable(true);
popWindow.update();

Это будет работать.

0 голосов
/ 09 ноября 2010

Имеет ли EditText свойство android: editable значение true? Если значение равно false, оно будет отключено, как вы описали.

...