如何在Kotlin中使用switch-case调用activity?我想在Kotlin中使用switch-case结构,如下图所示。(Java代码)
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_home:
break;
case R.id.navigation_adminword:
Intent a = new Intent(activity_callender.this,Words_List.class);
startActivity(a);
onStop();
break;
case R.id.navigation_myword:
Intent b = new Intent(activity_callender.this,SaveWords.class);
startActivity(b);
onStop();
break;
case R.id.navigation_profil:
Intent c = new Intent(activity_callender.this,UsersActivity.class);
startActivity(c);
onStop();
break;
}
return false;
}
4条答案
按热度按时间niknxzdl1#
由于Java
switch
在Kotlin中不可用,因此您不能使用when
,甚至if
案例...实际上你可以用
when
做更多的事情,比如返回一个值,然后把它赋给一个变量,等等。https://kotlinlang.org/docs/reference/control-flow.html#when-expression
dm7nw8vv2#
When表达式(您的问题)
我将直接返回
when
表达式的结果(它返回每个分支的值),在这种情况下,您的乐趣变成了一个“单行程序”,它可以使用Kotlin表达式语法(=
,而不是{}
):帮助器扩展(跨项目重用)
我已经将
intent
和startActivity
逻辑委托给这些扩展:ar7v8xwq3#
我在下面的链接中使用了底栏。我无法调用Activity。我猜是因为onNavigationItemSelected属性不存在。enter link description here
56lgkhnf4#
1.如果你从Java迁移到Kotlin,那么你会发现语法部分也有一些变化。
1.在Java中,我们使用开关,但在Kotlin中,当时,开关转换为。
1.when也用于条件表示,但它以一种非常聪明和容易的方式完成这些事情。
1.每当你有个可能性时,你就可以在代码中使用when。
例如,在Java中使用switch编写的代码:-
例如,使用switch编写的代码在使用when后转换为如下所示的内容:
因此,对于您的问题,您可以在Kotlin中将代码编写为:-