2011-10-18 12 views
3

「EditTextの作成」ボタンを押すと、EditTextに動的に値が設定されます。編集テキストのフォーカスが動作していません。

public void onCreateButtonPressed(View view) { 
    EditText et = new EditText(this); 
    et.setOnFocusChangeListener(new OnFocusChangeListener() { 
     @Override 
     public void onFocusChange(View v, boolean hasFocus) { 
      int id = v.getId(); 
      Log.d(TAG, "EditText: "+id+"Focus state:"+hasFocus); 
     } 
    }); 
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
    et.setFocusableInTouchMode(true); 
    et.setFocusable(true); 
    et.requestFocus(); 
    et.setId(id++); 
    layout.addView(et, params); 
} 

これはうまくいきます。しかし、私はいくつかの編集テキストにフォーカスを変更し、 "Create EditText"ボタンを押すとカーソルが新しく作成されたEditTextで点滅しますが、私が入力したテキストは新しく作成されたEditTextを表示していません。 GoogleとSOFで検索すると、requestFocus()関数が使用されます。しかし、私はすでにrequestFocus()を新しく作成されたEditTextで使用しています。

私は、この問題の解決方法を探しています。どんな提案も歓迎されます。

-Regards、

ロン
+0

あなたが他のEditTextに入力することができますか? –

+0

@Android_Crazyこの「Create EditText」ボタンで5つのedittextを作成するとします。 2番目の編集テキストをクリックしてテキストを入力し、 "Create EditText"ボタンを押すと新しい編集テキスト(6番目の編集テキスト)が作成され、新しく作成された編集テキストでカーソルが点滅します。しかし、キーボードに入力した文字は、新しく作成された編集テキストではなく、2番目の編集テキストに移動しています。 - ロン – Ron

答えて

0

は、実際に私は焦点を要求し、次にレイアウトにビューを追加した以前のコードでは、正確な問題を見出しました。しかし、我々は反対を行う必要があります。最初に、ビューをレイアウトに追加し、次にeditFocusを編集テキストに追加する必要があります。それが問題を解決しています。

-Regards、 ロン...

関連する問題