- 前言
- 整体结构及效果图
- 实现过程
- (1)素材准备
- (2)创建Friends实体类
- (3)创建friends_item布局文件
- (4)在fragment_contact.xml添加ListView
- (5)创建适配器类FriendsAdapt
- (6)最后回到contact初始化数据,并创建FriendsAdapter对象,将它作为适配器传入到ListView显示
- (7)实现好友列表相应ListView中OnitemClick的点击事件,在onCreateView方法中添加以下代码
在上篇的文章中,我们已经实现了通过底端的导航栏实现页面的跳转,小伙伴们可通过链接进行回顾,接下来我们将实现好友列表界面和相应ListView中OnitemClick的点击事件。
整体结构及效果图 实现过程 (1)素材准备准备若干张图片作为好友头像
(2)创建Friends实体类package com.example.we_chatting class Friends(val friendsname:String, val friendsimageId: Int)(3)创建friends_item布局文件
(4)在fragment_contact.xml添加ListView
(5)创建适配器类FriendsAdapt
package com.example.we_chatting import android.content.Context import android.view.ViewGroup import android.view.LayoutInflater import android.view.View import android.widget.* import android.widget.TextView import android.widget.baseAdapter class FriendsAdapter(context: Context, list: List(6)最后回到contact初始化数据,并创建FriendsAdapter对象,将它作为适配器传入到ListView显示, resourceId: Int) : baseAdapter() { private val context: Context //定义数据源 private val list: List //定义布局资源Id private val resourceId: Int private var viewHolder: ViewHolder? = null override fun getCount(): Int { return list.size } // 获得某一位置的数据 override fun getItem(position: Int): Any { return list[position] } //获得唯一标识 override fun getItemId(position: Int): Long { return position.toLong() } override fun getView(position: Int, view: View?, viewGroup: ViewGroup?): View? { var view = view if (view == null) { view = LayoutInflater.from(context).inflate(resourceId, null) viewHolder = ViewHolder() viewHolder!!.friendImage = view.findViewById (R.id.image) as ImageView viewHolder!!.friendName = view.findViewById (R.id.title) as TextView view.tag = viewHolder } else { viewHolder = view.tag as ViewHolder } viewHolder!!.friendImage!!.setImageResource(list[position].friendsimageId) viewHolder!!.friendName!!.text = list[position].friendsname return view } internal inner class ViewHolder { var friendImage: ImageView? = null var friendName: TextView? = null } init { this.context = context this.list = list this.resourceId = resourceId } }
package com.example.we_chatting
import android.app.alertDialog
import android.os.Bundle
import android.support.v4.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.*
import java.util.*
class contact : Fragment() {
val friendslist = ArrayList()
var listView: ListView? = null
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
val page: View = inflater.inflate(R.layout.fragment_contact, container, false)
listView = page.findViewById(R.id.lv) as ListView
//初始化
initfriend()
val adapter = getContext()?.let {
FriendsAdapter(
it, friendslist,
R.layout.friends_item)
}
listView!!.adapter = adapter
return page
}
private fun initfriend() {
repeat(2) {
friendslist.add(Friends("卷王1", R.drawable.friend1))
friendslist.add(Friends("卷王2", R.drawable.friend1))
friendslist.add(Friends("卷王3", R.drawable.friend1))
friendslist.add(Friends("卷王4", R.drawable.friend1))
friendslist.add(Friends("卷王5", R.drawable.friend1))
friendslist.add(Friends("卷王6", R.drawable.friend1))
friendslist.add(Friends("卷王7", R.drawable.friend1))
friendslist.add(Friends("卷王8", R.drawable.friend1))
friendslist.add(Friends("卷王9", R.drawable.friend1))
friendslist.add(Friends("卷王10", R.drawable.friend1))
friendslist.add(Friends("卷王11", R.drawable.friend1))
friendslist.add(Friends("卷王12", R.drawable.friend1))
}
}
}
(7)实现好友列表相应ListView中OnitemClick的点击事件,在onCreateView方法中添加以下代码
listView!!.setOnItemClickListener { parent, view, position, id ->
val friend = friendslist[position]
// Toast.makeText(getActivity(), fruit.friendsname ,Toast.LENGTH_SHORT).show()
val alertdialogbuilder: alertDialog.Builder = alertDialog.Builder(getActivity())
alertdialogbuilder.setMessage("您确认要与 " + friend.friendsname + " 聊天吗?")
alertdialogbuilder.setPositiveButton("确定", null)
alertdialogbuilder.setNeutralButton("取消", null)
val alertdialog1: alertDialog = alertdialogbuilder.create()
alertdialog1.show()
}



