0
我试图从我的各种片段打开家庭片段,如果我单击后退按钮(设备后退按钮)。但不是替换片段,应用程序关闭并出现设备的菜单画面。我无法解决发生了什么问题。并没有错误。请帮助我..片段后退按钮代码更改
HomeFragment:
public class HomeFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.home, container, false);
return view;
}
OneFragment:
public class OneFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_one, container, false);
OnKeyListener pressed = new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
return false;
}
};
view.setOnKeyListener(pressed);
return view;
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Fragment newFragment = new HomeFragment();
FragmentTransaction transaction = getFragmentManager()
.beginTransaction();
transaction.replace(R.id.content_frame, newFragment);
// transaction.addToBackStack(null);
transaction.commit();
return false;
}
return super.getActivity().onKeyDown(keyCode, event);
}
}
我甚至使用onBackPressed尝试()的片段方法。但没有期望的输出。
twoFragment:
public class TwoFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_two, container, false);
return view;
}
public void onBackPressed() {
Fragment newFragment = new WordFragment();
FragmentTransaction transaction = getFragmentManager()
.beginTransaction();
transaction.replace(R.id.content_frame, newFragment);
// transaction.addToBackStack(null);
transaction.commit();
super.getActivity().onBackPressed();
}
}
请帮助我..告诉我,我要去哪里错了。 我只想说哪个片段被打开,同时单击后退按钮应该打开homefragment类..
什么都没有发生。我改变了我的代码bt没有收到所需的输出 – Falguni 2014-10-09 20:06:11
您不必覆盖KeyEvent.KEYCODE_BACK – JoaoBiriba 2014-10-09 20:21:14
即使我删除覆盖,仍然没有改变。 – Falguni 2014-10-09 20:39:39