2011-10-18 111 views
3

我有一个布局,EditText是通过按下“Create EditText”按钮动态填充的。编辑文本焦点不工作android

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); 
} 

它运作良好。但是当我将焦点更改为某些编辑文本并按下“创建EditText”按钮时,光标在新创建的EditText中闪烁,但我键入的文本未显示新创建的EditText。在Google和SOF中搜索给出了requestFocus()函数的用法。但我已经在新创建的EditText中使用了requestFocus()。

我急切地寻找解决方案来解决这个问题。欢迎任何建议。

-Regards, 罗恩

+0

你能输入其他的edittext吗? –

+0

@Android_Crazy如果我用这个“Create EditText”按钮创建5个edittexts。当我点击第二个编辑文本时,输入了一些文本并按下了“Create EditText”按钮,创建了一个新的编辑文本(第六个编辑文本),并且光标在新创建的edittext中闪烁。但是我在键盘上输入的字符是第二个编辑文本,而不是新创建的编辑文本。 -Ron – Ron

回答

0

其实我发现确切的问题,在前面的代码我是请求焦点,然后添加视图布局。但我们需要做相反的事情。首先需要将视图添加到布局,然后将请求焦点添加到编辑文本。那就是解决问题。

-Reserved, Ron ..