MainActivity.kt
package com.example.administrator.recycle_test
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.LinearLayoutManager
import android.support.v7.widget.RecyclerView
class MainActivity : AppCompatActivity() {
private lateinit var mRecycler:RecyclerView
private lateinit var mlist:Array<String>
private lateinit var mAdatper:MyAdapter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
initData()
initView()
mRecycler=findViewById(R.id.mRecycler)
var mAdapter:MyAdapter=MyAdapter(this,mlist)
mRecycler.setAdapter(mAdapter)
var LinearLayoutManager=LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false)
mRecycler.setLayoutManager(LinearLayoutManager)
}
fun initData(){
mlist= arrayOf("1","2","3","34","35")
}
fun initView(){
mRecycler=findViewById(R.id.mRecycler)
}
}
MyAdapter.kt
package com.example.administrator.recycle_test
import android.content.Context
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
/**
* Created by Administrator on 2017/11/18.
*/
class MyAdapter: RecyclerView.Adapter<mView> {
private lateinit var minflater:LayoutInflater
private lateinit var context:Context
private lateinit var mlist:Array<String>
constructor(context: Context,list:Array<String>){//构造函数重写
this.context=context
this.mlist=list
minflater= LayoutInflater.from(context)
}
override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): mView {//这个方法要在写完mView(ViewHolder)之后将上面的RecyclerVIew.ViewHolder替换掉
var view:View=minflater.inflate(R.layout.single_view,parent,false)
var mViewHolder=mView(view)
return mViewHolder
}
override fun getItemCount(): Int {
return mlist.size
}
override fun onBindViewHolder(holder: mView?, position: Int) {//这里也要改一下holder的类型
holder!!.tv.setText(mlist[position].toString())
}
}
myViewHolder.kt
package com.example.administrator.recycle_test
import android.support.v7.widget.RecyclerView
import android.view.View
import android.widget.TextView
/**
* Created by Administrator on 2017/11/18.
*/
class mView : RecyclerView.ViewHolder {
public lateinit var tv: TextView
constructor(view:View):super(view){
tv=view.findViewById(R.id.tv_2)
}
}
layout
single_View.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:background="#44ff0000"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv_2"
android:layout_width="281dp"
android:layout_height="24dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="TextView"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.252"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.017" />
</android.support.constraint.ConstraintLayout>
Main_Activity.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.administrator.recycle_test.MainActivity">
<android.support.v7.widget.RecyclerView
android:id="@+id/mRecycler"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0" />
</android.support.constraint.ConstraintLayout>