栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Fragment实现好友列表功能和相应ListView中OnitemClick的点击事件(kotlin语言)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Fragment实现好友列表功能和相应ListView中OnitemClick的点击事件(kotlin语言)

好友列表功能实现过程
  • 前言
  • 整体结构及效果图
  • 实现过程
    • (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, 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
    }
}
(6)最后回到contact初始化数据,并创建FriendsAdapter对象,将它作为适配器传入到ListView显示
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()
        }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/631565.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号