制作按钮重新启动活动
好吧,所以我知道这可能看起来很简单,我的意思是我认为它是。但基本上我想要restartActivity方法重新启动活动。制作按钮重新启动活动
我做的第一件事就是创建按钮,并在xml中有这样的代码行。 android:onClick="restartActivity"
然后我的类包含restartActivity方法,例如
public void restartActivity()
{
Intent intent= new Intent(this, MainActivity.class);
startActivity(intent);
}
当我尝试这样结束意外事件发生的是停止工作对话框。所以我的问题只是为什么这不起作用。我确定我在正确的布局中重新启动了按钮,我检查并确保所有需要的引用都已完成。 Android清单是完全正确的。直到我将这两条线添加出来才开始崩溃。我还应该提到我的目标api是8,并且其中一个答案是api 11或更高。由于日食“亲切”让我知道。
的点击可能喜欢
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();
因此,等待所有这一切都在我的第二个活动onClick方法?我想我的第二项活动可以推出哪些代码来重新启动第一项活动?我想这会是一个更好的方式来做到这一点。 – 2013-04-21 02:45:48
你可以在第二项活动中做同样的事情。但是会创建一个新的活动实例。在这种情况下,您需要清除后退堆栈。 – 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();
}
请添加你的错误。 您是否在再次启动之前关闭活动? – 2013-04-20 04:52:47
您是否尝试使用重新创建方法? – Daniel 2013-04-20 04:55:10
下面的答案将有助于您的问题,但我认为你应该确保这是你想要做的。如果您需要刷新“视图”或更新数据,那么有更好的方法。从本身内部完全重新启动'活动'没有太多的理由 – codeMagic 2013-04-20 05:27:59