我创建了两个活动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时吐司并没有显示很长时间,因此几秒钟内消失了,所以我认为我的代码安排有误 有人告诉我如何正确安排此代码。 例如: 首先完成,敬酒第二,然后开始活动。
答案 0 :(得分:1)
最好不要在完成活动后留下祝酒消息。它可能会引起一些问题,例如“屏幕覆盖检测到”错误。因此,请执行以下操作:
在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()
}
}
答案 1 :(得分:1)
尝试使用:
Intent intent = new Intent(this, NewActivity.class);
this.startActivity(intent);
答案 2 :(得分:0)
如果您这样安排代码
val intent = Intent(this,Main2Activity::class.java)
Toast.makeText(this,getString(R.string.welcome),Toast.LENGTH_LONG).show()
startActivity(intent)
finish()
然后,您将开始新的活动,然后您将完成当前的活动。您仍然可以在更改之间稍加延迟,但这是正常的,您可以添加不同的动画,以便用户可以感觉到平滑的更改。
答案 3 :(得分:0)
还有另一种方法可以完成当前活动并将新方法带到顶部。
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)
答案 4 :(得分:0)
startActivity(new Intent(this, NewActivity.class));