2017-05-19 10 views
1

Googleでは正式にKotlinをAndroidの主要な(または近いうちに)言語としてサポートしているので、私は私のプロジェクトを翻訳しようとしていました。 JavaでKotlin - RecyclerVIewのItemClickListenerの実装方法

私が使用しています:アンドロイドメーカー内蔵の「トランスレータ」はかなり正常に動作していても、それは明らかに例としてRecyclerView

ためItemClickListenerを変換できませんでした。これは私が持っているものですthis class GitHubで実装しました。

これは私のJavaコードです:

ItemClickSupport.addTo(recyclerView).setOnItemClickListener(new ItemClickSupport.OnItemClickListener() { 
       @Override 
       public void onItemClicked(RecyclerView recyclerView, int position, View v) { 
        ... 
      }); 

私はKotlinでRecyclerViewためItemClickListenerを設定するにはどうすればよいですか?

答えて

3

実際には、そのJavaコードをKotlinファイルに貼り付けてコピーするだけで、組み込みコンバータを使用して同じことを行うKotlinコードを取得できます。

(あなたはまた、コード経由でMac上でWindows上はCtrl +Altキー + Shiftキー + K^⌥⇧Kと全体のJavaファイルのため、またはメニューからこのコンバータを呼び出すことができます - > KotlinファイルにJavaファイルを変換)

は何それはあなたを与えることは以下の通りです:

ItemClickSupport.addTo(recyclerView).setOnItemClickListener { recyclerView, position, v -> 
    // ... 
} 

これメートル。 SAM conversionのakes使用し、関数を呼び出したこの長い、より多くのJavaのような形に相当します。

ItemClickSupport.addTo(recyclerView).setOnItemClickListener(
     object : ItemClickSupport.OnItemClickListener { 
      override fun onItemClicked(recyclerView: RecyclerView?, position: Int, v: View?) { 
       // ... 
      } 
     } 
) 
+1

おかげで、私はかなりKotlinに新しく、それを学ぶためにしようとしています。あなたの答えは私を大いに助けました。短い形式のものは、パラメータの型を推測できないと言っていたので、長い形式を使う必要がありました。 – Daniele

+1

ラムダのパラメータに 'v:View'などの明示的な型を与えることができます助けてください。しかし、どんな場合でも、歓迎し、言語を楽しむ! :) – zsmb13

関連する問題