【问题标题】:Android: How to simulate back buttonAndroid:如何模拟后退按钮
【发布时间】:2011-10-17 09:18:31
【问题描述】:

目前我的活动允许用户填写某些数据。包括微调器等。当用户单击下一个系统导航到另一个屏幕时。当我按下手机上的后退按钮时,加载和填充的数据可用。

我的要求要求我在 UI 中提供一个软“返回”按钮。当用户单击它时,它会导航回上一个屏幕,但填充的数据不可用。

有什么方法可以模拟软 UI 按钮 onclick 事件上的后退按钮??

Intent back = new Intent(ImagePreviewActivity.this, sendingpage.class);
startActivity(back);

提前感谢您的宝贵时间。

【问题讨论】:

标签: android back simulate


【解决方案1】:

当用户单击软后退按钮时,您只需调用 Activity finish() 方法。

编辑:让你的 Activity 实现 OnClickListener 然后在代码中

          myBackButton.setOnClickListener(this);
   ....

   public void onClick(View v) {
       if(v.getId()==R.id.YourBackButton){
           finish();
       }
   }

EDIT2:您也可以从您的Activity 拨打onBackPressed()

【讨论】:

  • 这不会模拟返回按钮,它只是终止活动。例如,考虑尝试在多页首选项屏幕中使用它。它只会终止您的偏好活动,并且不会返回到上一个页面。
【解决方案2】:

如果您使用活动来显示不同的屏幕,那么只需根据单击按钮完成活动并获得一些结果,您可以将一些活动结果值传回,然后可以在上一个活动的 onActivityResult 中处理。

添加一些伪代码。假设你有两个 Activty A 和 B 并且你从 A -> B 然后从 B -> A

在活动 A 中

 startActivityforResult(new Intent(A.this, B.class), 1234);

 onActivityResult(......) {
    if (1234 == requestCode) {
        switch (resultCode) {
             /* Do your processing here like clear up old values and so on */
        }
    }
 }

在活动 B 中

onClick() {

  if (v == backBtn) {
           Intent resultIntent = new Intent();
    setResult(Activity.RESULT_OK, resultIntent);
    finish();
 }
}

【讨论】:

    【解决方案3】:

    如前所述,完成您的活动:

    myButton.setOnClickListener(new OnClickListener() {
    
        @Override
        public void onClick(View v) {
            finish();
        }
    });
    

    【讨论】:

      【解决方案4】:

      这篇文章中的所有解决方案都太复杂了。最简单的就是这个帖子:

      Android - Simulate Back Button

      这是帖子上的最后一个解决方案:

      this.onBackPressed();

      getActivity().onBackPressed();

      取决于你从哪里调用它。

      【讨论】:

        【解决方案5】:

        在你的软返回按钮 onClick 事件中写入

        Intent _intent = new Intent(PresentActivity.this,PreviousActivity.class);
        startActivity(_intent);
        

        【讨论】:

        • 我会避免这种情况,因为它会在我每次来回时不必要地增加我的 Activity 堆栈。
        • 我的代码就是这样写的。这显示了如何调用新活动:(
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-25
        • 1970-01-01
        • 1970-01-01
        • 2011-12-16
        • 2021-11-25
        相关资源
        最近更新 更多