Когда я нажимаю на 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
AlertDialog EditText не отображает программную клавиатуру ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1728546050
Anonymous
Когда я нажимаю на TextInputEditText, который является родительским для LinearLayout добавленного программно в AlertDialog, моя клавиатура не отображается (проверено на нескольких устройствах)
Сначала я создаю новый LinearLayout и добавляю к нему новый Spinner.
После последнего элемент на счетчике выбран, я удаляю счетчик из LinearLayout и добавляю TextInputEditText:
layout.removeAllViews();
layout.addView(input);
Когда я нажимаю на TextInputEditText, он фокусируется, но [b]мягкая клавиатура не появляется[/b]
[b]Однако[/b], если я добавлю 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();
}
Подробнее здесь: [url]https://stackoverflow.com/questions/38542371/alertdialog-edittext-doesnt-show-a-soft-keyboard[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия