优于别人,并不高贵,真正的高贵是优于过去的自己
我也是刚开始学习kotlin代码中还是有很多java代码的身影
class MainActivity : AppCompatActivity() {
//lateinit延时实例化
private lateinit var mRecycelrview: RecyclerView
private lateinit var mAdapter: MyAdapter
private lateinit var mDatas: MutableList<String>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//初始化集合
mDatas = mutableListOf()
//for循环从30开始降到0,每次减1
for (i in 30 downTo 0 step 1) {
mDatas.add("i-->$i")
}
mRecycelrview = findViewById(R.id.recyclerview)
mAdapter = MyAdapter(this, mDatas)
//设置layoutManager
mRecycelrview.layoutManager = LinearLayoutManager(this)
//设置adapter
mRecycelrview.adapter = mAdapter
}
}
其实再kotlin中findViewById可以省略掉,recyclerview就是直接用id也就行,这样写就有点像kotlin写法了
class MainActivity : AppCompatActivity() {
//lateinit延时实例化
private lateinit var mAdapter: MyAdapter
private lateinit var mDatas: MutableList<String>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//初始化集合
mDatas = mutableListOf()
//for循环从30开始降到0,每次减1
for (i in 30 downTo 0 step 1) {
mDatas.add("i-->$i")
}
mAdapter = MyAdapter(this, mDatas)
//设置layoutManager
recyclerview.layoutManager = LinearLayoutManager(this)
//设置adapter
recyclerview.adapter = mAdapter
}
}
下面看看adapter的写法 ,看起来很像java代码的写法,只不过是定义变了,我目前也就会这么一点点,其他牛逼的写法还需要慢慢学习,网上有很多不同的写法,暂时还看不太懂
class MyAdapter : RecyclerView.Adapter<MyAdapter.ViewHolder> {
var mContext: Context
var mDatas: List<String>
var mInflater: LayoutInflater
//这是构造方法
constructor(context: Context, list: List<String>) {
this.mContext = context
this.mDatas = list
mInflater = LayoutInflater.from(mContext)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val itemView: View = mInflater.inflate(R.layout.adapter_item_layout, null)
val holder: ViewHolder = ViewHolder(itemView)
return holder
}
override fun getItemCount(): Int {
if (mDatas.size > 0 && mDatas != null) {
return mDatas.size
}
return 0
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.text.text = mDatas[position]
}
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
var text: TextView = itemView.findViewById(R.id.text_adapter)
}
}
运行以后的效果就是下面这个样子的

网友评论