123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- package com.quansu.heifengwuliu.fragment
- import android.app.Activity
- import android.content.Intent
- import android.os.Bundle
- import android.text.TextUtils
- import android.view.LayoutInflater
- import android.view.ViewGroup
- import androidx.recyclerview.widget.LinearLayoutManager
- import com.quansu.heifengwuliu.activity.AddressAddActivity
- import com.quansu.heifengwuliu.adapter.AddressAdapter
- import com.quansu.heifengwuliu.base.MBRFragment
- import com.quansu.heifengwuliu.config.MIntentAction
- import com.quansu.heifengwuliu.databinding.FragmentAddressBinding
- import com.quansu.heifengwuliu.model.AddressBean
- import com.quansu.heifengwuliu.vmodel.AddressVModel
- import com.ysnows.base.net.IResp
- import com.ysnows.base.utils.B
- import com.ysnows.base.utils.UiSwitch
- import java.util.*
- //发货 -卸货地址
- class AddressFragment : MBRFragment<AddressVModel, AddressAdapter, FragmentAddressBinding>() {
- var type: String = ""
- var isShow: String = ""
- private var sideBarData = arrayListOf<String>()
- override fun __before(savedInstanceState: Bundle?) {
- super.__before(savedInstanceState)
- val arguments = arguments
- if (null != arguments) {
- type = arguments.getString("type")!!
- isShow = arguments.getString("isShow", "1")
- }
- }
- override fun vmClass(): Class<AddressVModel> {
- return AddressVModel::class.java
- }
- override fun init(savedInstanceState: Bundle?) {
- super.init(savedInstanceState)
- vm.inData(type, this)
- binding.sidebar.attachTipView(binding.tvTip)
- }
- override fun listeners() {
- super.listeners()
- binding.flAdd.setOnClickListener {
- //添加地址
- UiSwitch.bundleRes(this, AddressAddActivity::class.java,
- B.with().putString("type", type).ok(), MIntentAction.REQUEST_CODE_ONE)
- }
- binding.sidebar.setOnSelectedListener { position, text ->
- if (adapter().data.size > 0) {
- for (i in 0 until adapter().data.size) {
- var client = adapter().data[i]
- if (text == client.py) {
- (binding.recyclerView.layoutManager as LinearLayoutManager).scrollToPositionWithOffset(i, 0)
- }
- }
- }
- }
- }
- override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
- super.onActivityResult(requestCode, resultCode, data)
- if (MIntentAction.REQUEST_CODE_ONE == requestCode && resultCode == Activity.RESULT_OK) {
- //刷新列表
- onRefresh()
- }
- }
- override fun onListReceive(res: IResp<*>) {
- super.onListReceive(res)
- if (null != res) {
- sideBarData.clear()
- setSideBarData(res.data() as List<AddressBean>)
- }
- }
- private fun setSideBarData(data: List<AddressBean>) {
- for (i in data.indices) {
- if (!TextUtils.isEmpty(data[i].py)) {
- sideBarData.add(data[i].py.toString())
- }
- }
- //去重
- val list = removeDuplicateWithOrder(sideBarData)
- if (sideBarData != null && sideBarData.size > 0) {
- binding.sidebar.setData(list)
- } else {
- binding.sidebar.init()
- }
- }
- private fun removeDuplicateWithOrder(list: List<String>): ArrayList<String> {
- val set: MutableSet<String> = HashSet<String>()
- val newList: ArrayList<String> = ArrayList<String>()
- val iter = list.iterator()
- while (iter.hasNext()) {
- val element = iter.next()!!
- if (set.add(element)) newList.add(element)
- }
- return newList
- }
- override fun initAdapter(): AddressAdapter {
- return AddressAdapter(vm, isShow)
- }
- override fun binding(inflater: LayoutInflater, container: ViewGroup?): FragmentAddressBinding {
- return FragmentAddressBinding.inflate(layoutInflater, container, false)
- }
- override fun title(): String? {
- return null
- }
- }
|