代码之家  ›  专栏  ›  技术社区  ›  YingYang

安卓,检查是否按下了后退按钮

  •  1
  • YingYang  · 技术社区  · 7 年前

    我有两种观点和活动。 第一个是旋转器。第二步,您可以创建新条目(存储在活动1中微调器的数据库中)。 如果用户完成并按下后退按钮,我必须刷新活动1上的微调器(因为有新条目)。

    我知道,我可以用onResume方法来实现,但这种方法在每次我返回活动1时都会被调用,这不仅仅是因为返回按钮。

    有什么解决方案吗?我可以检查一下onResume方法中是否按下了后退按钮吗?

    4 回复  |  直到 7 年前
        1
  •  6
  •   Bob    7 年前

    您可以覆盖 onBackPressed()

    可以将信息作为布尔值传递 hasBackPressed = true setResult()

    从活动1开始活动2:

    Intent i = new Intent(this, SecondActivity.class);
    startActivityForResult(i, 1);
    

    从活动2传回信息:

        @Override
        public void onBackPressed() {
            Intent returnIntent = new Intent();
            returnIntent.putExtra("hasBackPressed",true);
            setResult(Activity.RESULT_OK,returnIntent);
            finish();
        }
    

    在活动1中接收数据:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    
        if (requestCode == 1) {
            if(resultCode == Activity.RESULT_OK){
                boolean hasBackPressed = data.getBooleanExtra("hasBackPressed");
            }
            if (resultCode == Activity.RESULT_CANCELED) {
                //Write your code if there's no result
            }
        }
    }
    
        2
  •  1
  •   Danail Alexiev    7 年前

    startActivityForResult() . 在活动2中,您可以将结果设置为 RESULT_OK 添加新项目时。然后,在 onActivityResult()

        3
  •  1
  •   Satan Pandeya Manoj ahirwar    7 年前

    onBackPressed() 方法并在此函数内执行操作。

    @Override
    public void onBackPressed() {
        // your stuff here
    
        super.onBackPressed();
    }
    
        4
  •  0
  •   n_r    7 年前

    使用 startActivityForResult() 启动第二个活动,并在 onBackPressed() 第二个活动。抓住它 onActivityResult()

    调查 this .