https://stackoverflow.com/questions/49219439/incorrect-variable-names-in-overridden-methodsjava
剛剛升級了Android Studio的版本到3.3,在使用RecyclerView的時候出現了下面的問題:android
在實現RecyclerView.Adapter的時候,方法的參數出現
p0
,p1
這樣的狀況。ide
class CommonAdapter : RecyclerView.Adapter<MyViewHolder>() { override fun getItemCount(): Int { TODO("not implemented") //To change body of created functions use File | Settings | File Templates. } override fun onBindViewHolder(p0: MyViewHolder, p1: Int) { TODO("not implemented") //To change body of created functions use File | Settings | File Templates. } override fun onCreateViewHolder(p0: ViewGroup, p1: Int): MyViewHolder { TODO("not implemented") //To change body of created functions use File | Settings | File Templates. } }
出現了這個問題以後,找了不少資料,有的說沒有想在對應API的源碼,有的說得修改AndroidStudio的配置文件,有的說得修改SDK的路徑,可是最終都沒有解決。ui
最終在 stackoverflow
上找到了解決辦法,原來是引用了 28 的Design包。這個問題是API 28 的固有的問題,並非本身配置錯誤致使的問題,講28的包改成27的包就能夠解決了。code
implementation 'com.android.support:design:28.0.0'
將28的包改成以下所示的27的包之後,問題解決了。get
implementation 'com.android.support:design:27.0.0'
修改後實現方法的效果以下:源碼
class CommonAdapter : RecyclerView.Adapter<MyViewHolder>() { override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): MyViewHolder { TODO("not implemented") //To change body of created functions use File | Settings | File Templates. } override fun getItemCount(): Int { TODO("not implemented") //To change body of created functions use File | Settings | File Templates. } override fun onBindViewHolder(holder: MyViewHolder?, position: Int) { TODO("not implemented") //To change body of created functions use File | Settings | File Templates. } }