将编辑文本的焦点保留在Android活动和片段中的方向更改上

将编辑文本的焦点保留在Android活动和片段中的方向更改上,android,android-edittext,Android,Android Edittext,我想在Android Activity and Fragment中更改方向后保留编辑文本的焦点,有什么帮助吗?例如,更改方向后,我必须保留所选编辑文本的焦点。请参见下图 您必须通过内容观察者收听System.Accelerator\u旋转 注册内容观察者 getContentResolver().registerContentObserver(Settings.System.getUriFor(Settings.System.ACCELEROMETER_ROTATION),true,rotati

我想在Android Activity and Fragment中更改方向后保留编辑文本的焦点,有什么帮助吗?例如,更改方向后,我必须保留所选编辑文本的焦点。请参见下图


您必须通过内容观察者收听System.Accelerator\u旋转

注册内容观察者

getContentResolver().registerContentObserver(Settings.System.getUriFor(Settings.System.ACCELEROMETER_ROTATION),true,rotationObserver );
方向更改时将调用onChange方法

private ContentObserver rotationObserver = new ContentObserver(new Handler()) {
    @Override
    public void onChange(boolean selfChange) {
       Do your task
    }

})

您可以保存
编辑文本的焦点,然后在
onResume()中重新分配它


希望这有帮助。:)

你是说你想显示软键盘?你试过
editText.requestFocus()
?@MisaghEmamverdi,我试过了,但没用
EditText et;
static boolean et_focus;

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  // Your code...

  et=(EditText) findViewById(R.id.editText1);
  et.setOnFocusChangeListener(new OnFocusChangeListener() {

    @Override
    public void onFocusChange(View arg0, boolean focus) {
      et_focus = focus;         
    }
  });
}

@Override
protected void onResume() {
  if(et_focus) {
    et.requestFocus();
  }
}