分析:Android界面加载刷新UI的时候,是按从左到右,从上到下的顺序,加载的过程中,如果此时使用requestFocus()的话,有可能此时还没把整个界面刷新好,导致requestFocus无效。导致EditText获取焦点失败。
解决办法:延迟申请焦点,待界面刷新完成再requestFocus()
etPrice.postDelayed(new Runnable() {
@Override
public void run() {
etPrice.requestFocus();
} }, 200);
如果是为了实现界面固定控件间焦点切换可以使用以下方法:
tvExit.setNextFocusDownId(R.id.et_price);
tvExit.setNextFocusUpId(R.id.et_price);
tvExit.setNextFocusRightId(R.id.et_price);
tvExit.setNextFocusLeftId(R.id.et_price);