制作按钮重新启动活动

问题描述:

好吧,所以我知道这可能看起来很简单,我的意思是我认为它是。但基本上我想要restartActivity方法重新启动活动。制作按钮重新启动活动

我做的第一件事就是创建按钮,并在xml中有这样的代码行。 android:onClick="restartActivity"

然后我的类包含restartActivity方法,例如

public void restartActivity() 
{ 
    Intent intent= new Intent(this, MainActivity.class); 
    startActivity(intent); 
} 

当我尝试这样结束意外事件发生的是停止工作对话框。所以我的问题只是为什么这不起作用。我确定我在正确的布局中重新启动了按钮,我检查并确保所有需要的引用都已完成。 Android清单是完全正确的。直到我将这两条线添加出来才开始崩溃。我还应该提到我的目标api是8,并且其中一个答案是api 11或更高。由于日食“亲切”让我知道。

+0

请添加你的错误。 您是否在再次启动之前关闭活动? – 2013-04-20 04:52:47

+0

您是否尝试使用重新创建方法? – Daniel 2013-04-20 04:55:10

+0

下面的答案将有助于您的问题,但我认为你应该确保这是你想要做的。如果您需要刷新“视图”或更新数据,那么有更好的方法。从本身内部完全重新启动'活动'没有太多的理由 – codeMagic 2013-04-20 05:27:59

的点击可能喜欢

public void restartActivity(View view) 
    { 
     // do your work Here 
     Intent intent= new Intent(currentActivity.this, MainActivity.class); 
     startActivity(intent); 
    } 

使用活动上下文。你在点击按钮时指的是这个。这指的是当前的情况下,你的情况是按钮。

Intent intent= new Intent(ActivityName.this, MainActivity.class); 

这将创建相同活动的新实例。

假设您有MainActivity。这是上回

在按钮点击启动相同的活动,并呼吁结束()

Intent t= new Intent(MainActivity.this,MainActivity.class); 
startActivity(t); 
finish(); 

编辑:

在您的第一项活动说按钮点击

Intent t= new Intent(FirstActivity.this,SecondActivity.class); 
startActivity(t); 
finish(); 

在您的第二个按钮点击活动

Intent t= new Intent(SecondActivity.this,FirstActivity.class); 
startActivity(t); 
finish(); 
+0

因此,等待所有这一切都在我的第二个活动onClick方法?我想我的第二项活动可以推出哪些代码来重新启动第一项活动?我想这会是一个更好的方式来做到这一点。 – 2013-04-21 02:45:48

+0

你可以在第二项活动中做同样的事情。但是会创建一个新的活动实例。在这种情况下,您需要清除后退堆栈。 – Raghunandan 2013-04-21 05:09:10

活动类已经提供了这种方法:

public void recreate() 

自:API级别11 事业活动与新实例中重新创建。由于配置更改,这会导致与创建Activity时基本相同的流程 - 当前实例将经历其生命周期到onDestroy(),然后创建一个新实例。

所以,你可以做这样的事情,

public void Restart() 
{ 
    this.recreate(); 
} 

如果你是活动的以外,后来干脆:

public void Restart(Context ctx) 
    { 
     Activity a = (Activity)ctx; 
     ctx.recreate(); 
    }