首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onBackPressed不工作

onBackPressed不工作
EN

Stack Overflow用户
提问于 2014-10-25 01:34:52
回答 3查看 511关注 0票数 0

我试着做一个后退按钮来处理碎片。我用的是onBackPressed。但是每一次编译并点击上一次按钮,屏幕总是会转到主屏幕上,而不是转到前面的片段,我的代码有什么问题吗?谢谢你之前

这是我的代码

公共类FragmentScheduleRoom扩展片段{ ListView列表;//数组字符串存储国家名String[] room =新的String[] { "304“、"305”、"306“、"307”、"308“、};@覆盖公共视图( inflater.inflate(R.layout.fragment_layout_schedule_room,oncreateView,ViewGroup容器,Bundle savedInstanceState) { Log.d("ZZZ","ada di oncreateView Schedule“);super.onCreate(savedInstanceState);View rootView =oncreateView容器, List> aList =新的ArrayList>(); 对于(int i=0;i<5;i++) { HashMap hm =新的HashMap();hm.put(“房间”,roomi);aList.add(hm);// R.layout.listview_layout定义了每个项目列表= (ListView) rootView.findViewById(R.id.list)的布局;ListAdapter适配器=新SimpleAdapter(getActivity()、aList、R.layout.list_schedule_room、new String[]{"room"}、new String[]{“room”}) Int[]{R.id.room}; view.findViewById(R.id.room)).getText().toString();(list.setAdapter(适配器));list.setOnItemClickListener(新AdapterView.OnItemClickListener() {@AdapterView.OnItemClickListener @Override void onItemClick)(AdapterView<?>父视图、视图、int位置、长id) { String = ((TextView) onItemClick)//意图in =新意图(getActivity(),FragmentScheduleDetail.class);// in.putExtra("txt",day);字符串selectday = getArguments().getString("selectday");片段=新FragmentScheduleDetail();Bundle data = new ();data.putString("selectroom",房间);data.putString("selectday",selectday);fragment.setArguments(数据);FragmentManager frgManager = getFragmentManager();Log.d(“标签”,“房间选择:”+ data.getString("selectroom"));frgManager.beginTransaction().replace(R.id.content_frame,片段) .commit();//Toast.makeText(getActivity(),“您单击”+ aList.get(+position).get("day"),Toast.LENGTH_SHORT).show();});}返回rootView;} public void onBackPressed() {//Super.onBackPress();//Toast.makeText(getApplicationContext(),"click",2000).show();F片=新FragmentScheduleDay();FragmentManager frgManager = getFragmentManager();.commit();}}

EN

回答 3

Stack Overflow用户

发布于 2014-10-25 01:51:14

查看getFragmentManager().popBackStack()方法

票数 0
EN

Stack Overflow用户

发布于 2014-10-25 01:51:38

不需要这么做,兄弟,就这么做

代码语言:javascript
复制
 public void onBackPressed() {
    super.onBackPressed();
}

然后,在前面的片段中,将您带到FragmentScheduleRoomFragmentScheduleDay在调用下一个片段(即FragmentScheduleRoom) transaction.addToBackStack(null);时执行此操作

编辑1:大部分片段替换函数detaches()并附加()片段。所以用你的风格..。使用detach(旧片段);然后附加(新片段);然后提交()它将不会work..this正确的代码格式。

试着让我知道它是否解决了你的问题

票数 0
EN

Stack Overflow用户

发布于 2014-10-25 02:57:02

你可以试试这个:

代码语言:javascript
复制
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        // do your task here
    }
    return super.onKeyDown(keyCode, event);
}

希望这对你有用。这是我的工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26558530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档