从当前活动返回时显示上一个活动的按钮

时间:2012-10-10 13:11:30

标签: android android-intent

我希望通过使用后退按钮返回显示我之前活动的编辑按钮。但是当我使用

        @Override
            public void onClick(View arg0) {
                // finish the current activity
                finish();

            }

在我当前的活动中,它将返回上一个活动,但编辑按钮不会显示。

如果我在之前的活动中使用onResume

@Override
    protected void onResume() {
        super.onResume();
        btnEdit.setVisibility(View.VISIBLE);

    }

然后它始终可见,无论活动是第一次恢复还是创建。

我是Android开发的新手,请帮我解决这个问题。

3 个答案:

答案 0 :(得分:0)

你可以创建一个布尔变量,当你完成并在你的onResume方法中用这个布尔值检查时可以设置为true

答案 1 :(得分:0)

覆盖onRestart()方法

@Override
protected void onRestart () {
    super.onResume();
    btnEdit.setVisibility(View.VISIBLE);

}

或使用

启动活动
startActivityForResult (Intent intent, int requestCode)

方法和覆盖

@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data){
    super.onActivityResult (requestCode,resultCode,data);
    btnEdit.setVisibility(View.VISIBLE);

}

答案 2 :(得分:0)

好的,

当您启动Activity时,而不是startActivity(intent)使用startActivityForResult(intent, 1989)(1989可以是您想要的任何内容)。

当您从新活动返回时,在致电finish()之前,请执行以下操作:

        Intent returnIntent = new Intent();
        returnIntent.putExtra("resultBool", true);

        //Null checks, not strictly neccescary 

            if (getParent() == null)
            {
                setResult(Activity.RESULT_OK, returnIntent);
            }
            else
            {
                getParent().setResult(Activity.RESULT_OK, returnIntent);
            }

    finish();

然后在您的第一个活动覆盖onActivityResult()中,如下所示:

 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
        {
            // The int you initially used
            if (requestCode == 1989)
            {
                if (resultCode == RESULT_OK)
                {
                    boolean result = data.getBooleanExtra("resultBool", false)

                    if (result)
                      //Show the button now

                }
            }
    }