[英]How to start new activity from current activity?
我创建了两个活动MainActivity和Main2Activity。 我想从MainActivity启动Main2activity,也想完成当前活动并显示欢迎词。 我正在使用此代码
val intent = Intent(this,Main2Activity::class.java)
Toast.makeText(this,getString(R.string.welcome),Toast.LENGTH_LONG).show()
finish()
startActivity(intent)
所以我没有问题,但是当我运行此代码时我需要帮助,它可以正常工作,但是Main2Activity需要很长时间才能打开,并且在Main2Activity打开toast时吐司未显示很长时间,因此在几秒钟内消失了,所以我认为我将代码编错了,有人告诉我我如何正确安排此代码。 例如:先完成,再敬酒,然后再开始活动。
最好不要在完成活动后留下祝酒词。 它可能会引起一些问题,例如“屏幕覆盖检测到”错误。 因此,请执行以下操作:
在MainActivity中:
val intent = Intent(this, Main2Activity::class.java)
intent.putExtra("SHOW_WELCOME", true)
startActivity(intent)
finish()
在Main2Activity中:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (intent.getBooleanExtra("SHOW_WELCOME", false)) {
Toast.makeText(this, getString(R.string.welcome), Toast.LENGTH_LONG).show()
}
}
尝试使用此:
Intent intent = new Intent(this, NewActivity.class);
this.startActivity(intent);
如果您这样安排代码
val intent = Intent(this,Main2Activity::class.java)
Toast.makeText(this,getString(R.string.welcome),Toast.LENGTH_LONG).show()
startActivity(intent)
finish()
然后,您将开始新的活动,然后您将完成当前的活动。 您仍然可以在更改之间稍加延迟,但这是正常的,您可以添加不同的动画,以便用户可以感觉到平滑的更改。
还有另一种方法可以完成当前活动并将新方法带到顶部。
val intent = Intent(this,Main2Activity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK)
Toast.makeText(this,getString(R.string.welcome),Toast.LENGTH_LONG).show();
startActivity(intent)
顺便说一句,你可以像烤面包
Toast.makeText(this,R.string.welcome,Toast.LENGTH_LONG).show()
您不需要调用getString(R.string.welcome)
startActivity(new Intent(this, NewActivity.class));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.