2012-10-10 93 views
1

我想通过返回使用后退按钮来查看我之前活动的编辑按钮。但是,当我对我目前的活动是利用从当前活动返回时显示先前活动的按钮

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

      } 

,它会回到以前的活动,但编辑按钮不可见。

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

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

    } 

那么它总是可见,无论该活动是恢复或首次创建的。

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

+0

看看这里:HTTP:/ /developer.android.com/reference/android/app/Activity.html,尤其是'startActivityForResult'部分。 – Gio

+0

无论你如何回到上一个活动,都会调用'onResume()'**。对问题的描述听起来不是100%正确的。你能提供更多的信息或更多的代码吗? –

回答

0

好吧,

当您启动活动,而不是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 

       } 
      } 
    } 
+0

谢谢Joss,这是一个很棒的帮助。它的工作就像一个魅力...... :) –

0

可以使可当你完成设置为true的布尔变量,并用这个布尔检查你的onResume方法

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

} 
相关问题