我使用导航抽屉活动以及一些片段。我在每个片段的onResume()下添加了一些代码行,通过后退按钮单击返回特定片段。代码是:
getView().setFocusableInTouchMode(true);
getView().requestFocus();
getView().setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK){
Fragment fragment = null;
Class fragmentClass;
fragmentClass = Introduction.class;
try {
fragment = (Fragment) fragmentClass.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
return true;
}
return false;
}
});
当我第一次打开片段时,EditText将以Un Focused模式显示,因此如果我单击后退按钮,它将正常工作(因为:getView()。setFocusableInTouchMode(true);)。但是假设我在EditText中写了一些内容然后点击后面,不能转到上一个片段,而是关闭应用程序。我该怎么办?
答案 0 :(得分:0)
你试过editText..setEnabled(false);
尝试将焦点更改为其他项目
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);