编辑文本焦点在安卓设备上无法工作

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

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

我正在拼命寻找解决这个问题的方法。欢迎任何建议。

-问候, Ron


你能在其他的EditText中输入吗? - Ashwin N Bhanushali
@Android_Crazy 如果我使用“创建EditText”按钮创建了5个EditText。当我点击第二个EditText,输入一些文本并按下“创建EditText”按钮时,会创建一个新的EditText(第6个EditText),并且光标会闪烁在新创建的EditText中。但是,我在键盘上键入的字符会进入第二个EditText而不是新创建的EditText。-Ron - Ron
1个回答

0

实际上,我找到了确切的问题。在早期的代码中,我是先请求焦点,然后将视图添加到布局中。但我们需要做相反的事情。首先将视图添加到布局中,然后请求焦点到编辑文本。这解决了问题。

-敬礼, Ron..


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接