Kotlin || 如何区分视图id onClick()像Android中的switch语句?

正如我们在Android所知道的,我们使用switch语句来区分下面的view ,我们用来implement View.OnClickListener来获取onClick接口方法来执行任何任务

  @Override public void onClick(View view) { switch (view.getId()) { case R.id.imgBack: ///DO SOME THING HERE break; case R.id.btnSubmit: ///DO SOME THING HERE break; } } 

同样的事情,我正在使用Kotlin ,通过实现View.OnClickListener并得到它的覆盖方法如下

 class FeedBackActivity : AppCompatActivity(), View.OnClickListener { override fun onClick(p0: View?) { /// HOW CAN I USE THE SWITCH STATEMENT TO DISTINGUISH THE VIEW CLICK } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.feed_back_screen) imgBack.setOnClickListener(this) } } 

在上面的代码中,我想使用相同的switch来区分不同的视图点击。 我怎样才能把这个存档在Kotlin

我知道有另一种方式来执行下面的Kotlin的点击监听器

 MY_VIEW.setOnClickListener { Toast.makeText(this,"I have clicked",Toast.LENGTH_LONG).show() } 

但是我想用我们使用Android Kotin中的相同接口。请帮助我从这个问题中缩短

使用when表达式 。 它相当于Java的switch 。 示例代码:

 when(view.id) { R.id.imgBack -> {/* code goes here */} R.id.btnSubmit -> {/* you can omit the braces if there is only a single expression */} } 

在以下情况下尝试使用 : – 当Kotlin中的表达式可以完成您可以使用开关执行的所有操作等等。

其实,当你可以代替最复杂的if / else你可以在你的代码。

欲了解更多信息, 请访问此网站

  when (view.id) { R.id.home -> perform your action here R.id.search -> perform your action here R.id.settings -> perform your action here else -> perform action }