AlertDialog EditText не отображает программную клавиатуруAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 AlertDialog EditText не отображает программную клавиатуру

Сообщение Anonymous »

Когда я нажимаю на TextInputEditText, который является родительским для LinearLayout добавленного программно в AlertDialog, моя клавиатура не отображается (проверено на нескольких устройствах)

Сначала я создаю новый LinearLayout и добавляю к нему новый Spinner.
После последнего элемент на счетчике выбран, я удаляю счетчик из LinearLayout и добавляю TextInputEditText:

layout.removeAllViews();
layout.addView(input);


Когда я нажимаю на TextInputEditText, он фокусируется, но мягкая клавиатура не появляется




Однако, если я добавлю TextInputEditText непосредственно как представление для AlertDialog, клавиатура всплывает и отображается правильно.


В моем файле AndroidManifest.xml нет специальных записей.

Мой полный код:

private void dialogAddContact() {

ArrayList mails = new ArrayList();

final LinearLayout layout = new LinearLayout(this);
final TextInputEditText input = new TextInputEditText(this);
final Spinner sp = new Spinner(this);

layout.addView(sp);
layout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));

input.setInputType(InputType.TYPE_CLASS_TEXT);
input.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
[....]

final ArrayAdapter adp = new ArrayAdapter([....]);

sp.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
sp.setAdapter(adp);
sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView parent, View view, int position, long id) {
Log.d(Tools.LOGTAG, position + " " + totalMails);
if(position == totalMails - 1){

/****** Here i remove the spinner and add the input ****/

layout.removeAllViews();
layout.addView(input);
}
}
[....]
});

final AlertDialog.Builder builder = new AlertDialog.Builder(this)
.setView(layout, 50, 0, 50, 0)
[....]
});

dialog = builder.create();
dialog.show();
}


Подробнее здесь: https://stackoverflow.com/questions/385 ... t-keyboard
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»