【问题标题】:Restart Activity with back button使用后退按钮重新启动 Activity
【发布时间】:2014-03-05 02:21:54
【问题描述】:

基本上,我的 MainActivity 有一个按钮,单击后将变为不可见,而 SecondActivity 将在几秒钟后被调用。但是,当我按下后退按钮时,MainActivity 上的按钮仍然不可见。我希望 MainActivity 重新启动/初始化。我知道这与 onResume 或 onRestart 有关,但我该如何实现这些方法?谁能给我一个例子?谢谢。

【问题讨论】:

    标签: android android-activity onresume application-restart


    【解决方案1】:

    当你去第二个时,你可以在你的MainActivity 上打电话给finish()。然后在你的SecondActivityOverride onBackPressed() 并再次启动MainActivity

    @Override
    public void onBackPressed()
    {
        // create Intent and start MainActivity again
    }
    

    【讨论】:

      【解决方案2】:

      我认为您正在寻找 startActivityForResult。您可以在 Android 文档或here on SO 中查看使用示例。

      基本上在您的第一个活动中,您会覆盖方法onActivityResult 并在其中(如果结果是OK)重新显示按钮。然后,在第二个活动中,将要返回的结果设置为 OK,然后按您喜欢的方式完成它(按返回按​​钮或调用 finish())。

      或者:

      您可以在第一个活动中覆盖onResume 方法,并在每次调用此方法时只显示按钮(请注意,即使在活动第一次启动时也会调用onResume,但由于按钮已经显示在您的案例中- 它不会有任何影响)。

      @Override
      public void onResume(){
        Button b = (Button) findViewById(R.id.myButton);
        b.setVisibility(View.VISIBLE);
      }
      

      【讨论】:

        【解决方案3】:

        在您的 Activity 中,只需编写

        @Override
        public void onResume(){
            // put your code here...
           yourButtonInstance.setVisibility(View.VISIBLE) 
        }
        

        并将更改可见性所需的逻辑放入其中

        【讨论】:

        • 感谢您的回复。应该放什么代码?就是这个问题。
        • yourButtonInstance.setVisibility(View.VISIBLE)
        【解决方案4】:

        您可以将您的按钮设置为活动的属性,并使您的按钮在 onPause() 或 onResume() 方法中可见。

          button.setVisibility(View.VISIBLE);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-01-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多