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

时间:2014-10-06 05:28:17

标签: android android-edittext

我希望在Android活动和片段中改变方向后保留编辑文本的焦点,有任何帮助来实现这一目标吗?,例如在更改方向后,我必须保留所选编辑文本的焦点。请参阅下面的图片。

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以通过保存EditText的焦点来完成此操作,然后在onResume()中重新分配。{p>

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

希望这有帮助。 :)

答案 1 :(得分:0)

您必须由内容观察员收听System.ACCELEROMETER_ROTATION。

注册内容观察者

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
    }

};