1

我想通过使用后退按钮返回在我之前的活动中看到一个编辑按钮。但是当我使用

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

            }

在我当前的活动中,它将返回到以前的活动,但编辑按钮不可见。

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

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

    }

那么它总是可见的,无论活动是恢复还是第一次创建。

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

4

3 回答 3

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);

}
于 2012-10-10T13:19:07.710 回答
0

您可以创建一个布尔变量,当您完成并在 onResume 方法中使用此布尔值进行检查时,该变量可以设置为 true

于 2012-10-10T13:17:05.357 回答
0

好的,

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

当您从新 Activity 返回时,在调用之前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();

然后在您的第一个 Activity 覆盖中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

                }
            }
    }
于 2012-10-10T13:25:45.900 回答