2016-10-23 23 views
0

W.englishList内の文字列の数に動的に対応するAlertDialogを作成しようとしています。イムは、この方法により、グリッドレイアウトに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を作成、編集することができないことを除いて、私はそれらを集中することができます作品にそれらをコピーするが、私はそれらを編集することはできません(キーボードdoesntのショーを)、 何か案は ?

編集:私はそれらにペーストをコピーできます。

答えて

0

これは、allertダイアログがキーボードをブロックするために起こります。 あなたはいつもキーボードを表示することができますタッチで

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

または各のEditTextとショーのキーボード用onTouchListener設定を:

  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が1つだけだったので、onTouchListenerを設定する方が簡単でした。 –

+0

明日は試してみます – Ay0m3

関連する問題