我有一个布局,通过按“创建 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。在谷歌和SOF中搜索到requestFocus()函数的用法。但是我已经在新创建的 EditText 中使用了 requestFocus()。
我正在拼命寻找这个问题的解决方案。欢迎提出任何建议。
-问候, 罗恩
最佳答案
实际上,我发现了确切的问题,在之前的代码中,我请求获得焦点,然后将 View 添加到布局中。但我们需要反其道而行之。首先需要将 View 添加到布局,然后将 requestFocus 添加到编辑文本。这就是解决问题。
-问候, 罗恩..
关于android - 编辑文本焦点不起作用 android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7803109/