private var x :Int = 0

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

tv1.text = “宿舍”;tv2.text = “小红”//默认

initDatas()

//点击底部弹出的列表对话框

ll.setOnClickListener {

for (i in 0 until list.size) {

if (tv2.text == list[i].dataName){//如果tv2.text是小红找到对应list的i的姓名

x = i;//i给x的赋值

break

}

}

//底部弹出的列表对话框

showBottomRadListDialog(tv1.text.toString(), list[x].dataValue, list as List, object : OnResultCallback {

//列表对话框被点击自己选择某一item数据

override fun onResult(t: Any) {

var dataValue :String = t.toString()

for (i in 0 until list.size){

if (dataValue == list[i].dataValue){

//dataValue对应的list[i].dataValue给tv2.text的赋值

tv2.text = list[i].dataName

break

}

}

}

})

}

}

//Dict实体类设置数据,可以看到这数据有规律

private fun initDatas() {

var sc = Dict(“1”, “4”, “宿舍”, “小红”, “1”);list.add(sc)

sc = Dict(“2”, “4”, “宿舍”, “小彬”, “2”);list.add(sc)

sc = Dict(“3”, “4”, “宿舍”, “小强”, “3”);list.add(sc)

sc = Dict(“4”, “4”, “宿舍”, “小华”, “4”);list.add(sc)

sc = Dict(“5”, “4”, “宿舍”, “小军”, “5”);list.add(sc)

sc = Dict(“6”, “4”, “宿舍”, “小文”, “6”);list.add(sc)

sc = Dict(“7”, “4”, “宿舍”, “小可”, “7”);list.add(sc)

sc = Dict(“8”, “4”, “宿舍”, “小进”, “8”);list.add(sc)

sc = Dict(“9”, “4”, “宿舍”, “小明”, “9”);list.add(sc)

sc = Dict(“10”, “4”, “宿舍”, “小一”, “10”);list.add(sc)

sc = Dict(“11”, “4”, “宿舍”, “小乐”, “11”);list.add(sc)

}

}

4.实体类Dict.kt

public class Dict {

private String id;//可以忽略

private String dataType;//可以忽略

private String dataTypeName;//表示“宿舍”两个字

private String dataName;//表示宿舍里每人的姓名

private String dataValue;//表示宿舍里人姓名排序

…

5.DialogUtil.kt,底部弹出的列表对话框(单选)

fun showBottomRadListDialog(title:String?,selValue:String?,dictList:List, callback: OnResultCallback, defaultBackground:Boolean = true){

var dialog = AnyLayer.dialog()

.contentView(R.layout.dialog_list)//列表框布局

.gravity(Gravity.BOTTOM)

.animStyle(DialogLayer.AnimStyle.BOTTOM)

//使用默认的背景

if(defaultBackground){

dialog.backgroundDimDefault()

}

dialog.show()

dialog.getView(R.id.tv_dialog_title).text = title?:""

var rv = dialog.getView(R.id.mRecyclerView)

//PhoneU:屏障像素获取手机大小(分辨率)

rv.setMaxHeight(PhoneU.getScreenPix(MyApplication.context)!!.heightPixels * 3 / 5 )

var selValue: String?= selValue

var mAdapter = RadListAdapter(selValue).apply{

setOnItemClickListener

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

浏览器打开:qq.cn.hn/FTe 开源分享

{ _, _, position ->

var dict = getItem(position)

dict?.let {

var mValue = it.dataValue

if(mValue.equals(selValue)){

selValue = “”

}else{

selValue = mValue

}

setCheckSelValue(selValue)

}

}

}

rv.adapter = mAdapter

mAdapter.setList(dictList)

rv.scrollToPosition(mAdapter.getSelectIndex())

var fl = dialog.getView(R.id.fl_dialog_confirm)

fl.setOnClickListener {

dialog.dismiss()

selValue?.let { it1 -> callback.onResult(it1) }

}

}

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐