2017-07-29 240 views
0

我們知道在Android我們使用的是switch聲明不同的view像下面,我們來implementView.OnClickListener得到onClick接口的方法來執行任何任務Kotlin ||如何區分Android中的switch語句中的onClick()視圖ID?

@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並得到它的優先級ided方法如下面

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() 
      } 

,但我想使用相同的接口Kotin這我們正在使用Android。請幫我把這個問題簡稱爲

+0

我認爲這[鏈接](https://antonioleiva.com/when-expression-kotlin/)可以幫助你 –

回答

7

使用when expression。它相當於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 */} 
} 
1

試試這個使用時: - ,在科特林表達式可以做一切你可以用一個開關和功能遠不止如此。

其實,當你可以用你的代碼中最複雜的if/else代替時。

更多信息visit this site

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 
} 
+0

哪裏是像R.id.some_thing的ID ...感謝您的輸入..請不要拿...請幫助我吧 –

+0

關注此鏈接(https://antonioleiva.com/when-expression-kotlin/)@RavindraKushwaha –