第二天

第二天

这个作业属于哪个课程软件工程
作业要求 团队作业4——项目冲刺
作业目标 scrum冲刺博客

 

站立会议

 

 

昨天完成任务

  1. UI界面初始设计(杨伊辙)(4小时

  2. 数据库初始设计(刘栋濠)(4小时

  3. 完成每日博客(肖丽萍)(1小时

今天计划完成的工作

  1. 完成每日博客(肖丽萍)(1小时

  2. 继续设计数据库(刘栋濠)(3小时

  3. 继续写安卓(杨伊辙)(3小时

工作中遇到的困难架构设计和底层逻辑讨论中出现分歧,最后顺利统一意见。

编码规范统一花了较长时间。

工作燃尽图

img

昨天代码签入任务

 

最新模块代码

package com.github.book.widget

import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import android.widget.*
import androidx.constraintlayout.widget.ConstraintLayout
import com.github.book.R
import java.util.*

/**
 * description none
 * author ez_yang@qq.com
 * date 2021.11.7 下午 9:39
 * version 1.0
 * update none
 **/
class ComboBox(context: Context, attrs: AttributeSet? = null, def: Int = 0) : ConstraintLayout(context, attrs, def) {

    constructor(context: Context, attrs: AttributeSet) : this(context, attrs, 0)

    constructor(context: Context) : this(context, null)

    private var tv_item: TextView
    private var ib_more: ImageButton
    private var tv_description: TextView

    private var listPopupWindow: ListPopupWindow? = null
    private var list = listOf<String>()
    private var myClick: OnMyClick? = null

    init {
        LayoutInflater.from(context).inflate(R.layout.widget_combobox, this, true)
        tv_item = findViewById(R.id.tv_comboBox_item)
        ib_more = findViewById(R.id.ib_comboBox)
        tv_description = findViewById(R.id.tv_comboBox_description)
        setListener()
    }

    fun setList(list: List<String>?) {
        list?.let {
            this.list = it
            setItem(it[0])
        }
    }

    fun setItem(string: String?) {
        string?.let {
            tv_item.text = it
        }
    }

    fun setDescription(description: String) {
        tv_description.text = description
    }

    private fun setListener() {
        ib_more.setOnClickListener {
            if (listPopupWindow == null) {
                listPopupWindow = ListPopupWindow(context)
                show()
            } else {
                close()
            }
        }
    }

    private fun show() {
        val adapter = SimpleAdapter(
            context,
            getStandardList(list),
            R.layout.item_listpopupwindow,
            arrayOf("object"),
            intArrayOf(R.id.tv_listPopupWindow)
        )
        listPopupWindow?.setAdapter(adapter)
        listPopupWindow?.anchorView = tv_item
        listPopupWindow?.setOnItemClickListener { parent, view, position, id ->
            setItem(list[position])
            myClick?.onClick(parent, view, position, id, list)
            close()
        }
        listPopupWindow?.show()
    }

    private fun close() {
        listPopupWindow?.dismiss()
        listPopupWindow = null
    }

    private fun getStandardList(l: List<String>): MutableList<Map<String, Any>> {
        val list = mutableListOf<Map<String, Any>>()
        var map: MutableMap<String, Any>
        for (i in l.indices) {
            map = HashMap()
            map["object"] = l[i]
            list.add(map)
        }
        return list
    }

    interface OnMyClick {
        fun onClick(parent: AdapterView<*>?, view: View?, position: Int, id: Long, list: List<String>)
    }

    fun setMyClick(myClick: OnMyClick) {
        this.myClick = myClick
    }

}
座位预定功能

 

成员总结
杨伊辙 很有意义的项目
刘栋濠 继续努力学习java后台技术
肖丽萍 积极与队友的沟通
容海量 跟着同学一起讨论非常棒
杨健鹏 每天多学一点点
posted @ 2021-11-21 13:23  HeathenX  阅读(58)  评论(0编辑  收藏  举报