2016-10-23 2 views
0

Im пытается создать AlertDialog, динамически соответствующий количеству строк в W.englishList. Im добавление EditTexts в макет сетки таким путем:Невозможно отредактировать EditText Android

final Activity act = this; 

GridLayout lay = new GridLayout(act); 
lay.setOrientation(GridLayout.VERTICAL); 

int row = 1; 

for (String i : W.englishList) { 
     EditText text = new EditText(act); 
     text.setText(i); 
     LayoutParams p = new GridLayout.LayoutParams(); 

     p.bottomMargin = 5; 
     p.width = GridLayout.LayoutParams.WRAP_CONTENT; 
     p.columnSpec = GridLayout.spec(0); 
     p.rowSpec = GridLayout.spec(tmp); 

     text.setLayoutParams(p); 
     lay.addView(text); 
     row++; 
     } 
//Some AlertDialog.setContentView(lay); 

Все работает за исключением того, что я не могу изменить в Editexts создан, я могу сфокусировать их, копировать их, но я не могу редактировать их (клавиатура не показывает), есть идеи ?

Редактировать: Я могу скопировать пасту в них.

ответ

0

Это происходит потому, что клавиатура allert dialog bloks. Вы можете показать клавиатуры всегда:

alertDialog.getWindow().setSoftInputMode(
    WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); 

или установить onTouchListener для каждого EditText и шоу-клавиатуры на ощупь:

  InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
      imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); 

и скрыть его:

   InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
       imm.hideSoftInputFromWindow(input.getWindowToken(), 0); 
+0

Это кажется странным, потому что у меня есть еще один диалоговое окно предупреждения в приложении, запрашивающее текстовые записи, и клавиатура показывает. Мне интересно, если это потому, что в другом диалоговом окне я сделал окно с XML-файлом? – Ay0m3

+0

Может быть, наборы клавиатур автоматически с помощью xml. У меня нет возможности проверить диалоговое окно оповещений с/без xml сейчас, но когда у меня была аналогичная проблема, я решил это с помощью этого метода. Однако у меня был только один TextEdit, поэтому было проще установить onTouchListener. –

+0

Я попробую завтра Я свяжусь с вами – Ay0m3

Смежные вопросы