- 创建一个新项目KotlinEx01
- 在Java中空间可以通过id - findViewbyId(int)获得相应的控件实例,那么在kotlin 中我们应该如何获得相应控件是咧呢
1、在kotlin中同样也可以使用findViewbyId
val mRecyclerView = findViewById<RecyclerView>(R.id.mRecyclerView)
2、如果还使用传统方式是不是感觉太out了,kotlin可以在activity中直接通过id来使用相应的控件
- kotlin中的点击事件
holder.itemView.setOnClickListener {
Toast.makeText(content,"您点击了"+item[position],Toast.LENGTH_LONG).show()
}
- kotlin中的活动间的跳转
content.startActivity(Intent(content,Kotlin1Activity::class.java))
MainActivity .kt
class MainActivity : AppCompatActivity() {
private var layoutManager : LinearLayoutManager? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val mRecyclerView = findViewById<RecyclerView>(R.id.mRecyclerView)
layoutManager = LinearLayoutManager(this)
layoutManager!!.orientation = LinearLayoutManager.VERTICAL
mRecyclerView.layoutManager = layoutManager
mRecyclerView.adapter = MyAdapter(this,arrayOf("yagn","xiao","jiang"))
}
private class MyAdapter<T> constructor(var content: Activity, var item : Array<T>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
override fun getItemCount(): Int {
return item .size
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
holder.itemView.text1.text = item[position].toString()
holder.itemView.setOnClickListener {
Toast.makeText(content,"您点击了"+item[position],Toast.LENGTH_LONG).show()
content.startActivity(Intent(content,Kotlin1Activity::class.java))
}
Glide.with(content).load("https://tpc.googlesyndication.com/simgad/18446101062938697303?sqp=4sqPyQQ7QjkqNxABHQAAtEIgASgBMAk4A0DwkwlYAWBfcAKAAQGIAQGdAQAAgD-oAQGwAYCt4gS4AV_FAS2ynT4&rs=AOga4qm2O-LnKIXwjSgm99JvzaA33aM5Qg").into(holder.itemView.img)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
var view=LayoutInflater.from(parent.context).inflate(R.layout.text_layout,parent,false)
return MyViewHolder(view)
}
inner class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView)
}
}
text_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:paddingLeft="10dp"
android:gravity="center_vertical">
<ImageView
android:id="@+id/img"
android:layout_width="50dp"
android:layout_height="50dp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:textSize="18sp"
android:textColor="#000"
android:id="@+id/text1"/>
</LinearLayout>