2017-10-15 23 views
0

私はkotlinを初めて使っています。未解決の参照kotlin変数

class TravelListAdapter(private var context: Context) : RecyclerView.Adapter<TravelListAdapter.MyViewHolder>() { 

    lateinit var onClickListener: TravelListAdapterListener 
    lateinit var holderView: View 

    interface TravelListAdapterListener { 
     fun onClickListener(v: View, position: Int) 
    } 


    class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { 

     private lateinit var txtLabel: TextView 

     fun MyViewHolder(view: View) { 

      holderView = view // holderView shows error 

      // in line below, holderView and onClickListener shows error 
      holderView.setOnClickListener(
       View.OnClickListener { v -> onClickListener.onClickListener(v, adapterPosition) } 
      ) 
     } 

    } 

    ... 
    ... 
} 

変数onClickListenerholderViewは、アダプタクラスで宣言されているが、私は別のクラスでそれらにアクセスしたときにアダプタクラス内で定義されている(このエラーを与える:私は私のアダプタで、次のコードを使用しています):

未解決の参照:変数名

誰もが私が間違ってやっているものを私に言うことはできますか?

答えて

3

の続きを読む、あなたが直接入れ子のクラスから外側のクラスのメンバにアクセスすることができます。

外部のクラスメンバーにアクセスするには、クラスをの内部クラスにする必要があります(下のsnipptにあります)。

class OuterClass{ 

    var name="john" 

    inner class InnerClass{ 

     //.... 
    } 

} 

だから、ここであなたは、あなたがこのリンクで同じことを確認することができます

MyViewHolderクラス内部クラスMyViewHolderを定義する必要がhttps://stackoverflow.com/a/46730214/4083237

関連する問題