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 }