package com.fangxinxing.xxfxx.ui.mine import android.app.Activity import android.content.Intent import android.text.Editable import android.text.TextWatcher import androidx.recyclerview.widget.LinearLayoutManager import cn.sinata.xldutils.view.SwipeRefreshRecyclerLayoutKt import com.fangxinxing.xxfxx.R import com.fangxinxing.xxfxx.base.MyBaseActivity import com.fangxinxing.xxfxx.bean.BankName import com.fangxinxing.xxfxx.bean.BankNameListBean import com.fangxinxing.xxfxx.netUtls.Api import com.fangxinxing.xxfxx.netUtls.callNet import com.fangxinxing.xxfxx.netUtls.getMapByAny import com.fangxinxing.xxfxx.ui.adapter.BankNameAdapter import kotlinx.android.synthetic.main.activity_select_bank.* import org.jetbrains.anko.startActivityForResult class SelectBankActivity: MyBaseActivity() { override fun setContentView() { setContentView(R.layout.activity_select_bank) } private val index = arrayListOf( "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z","#" ) private val allList = arrayListOf() //所有数据 private val showList = arrayListOf() //显示数据 private val adapter = BankNameAdapter(showList) override fun initView() { setTitleText("选择银行") lv_bank.setLayoutManager(LinearLayoutManager(this)) lv_bank.setMode(SwipeRefreshRecyclerLayoutKt.Mode.None) lv_bank.setAdapter(adapter) getBankList() } override fun setOnclick() { et_search.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { } override fun afterTextChanged(s: Editable?) { showList.clear() if (s.isNullOrEmpty()){ showList.addAll(allList) }else{ showList.addAll(allList.filter { it.bankName?.contains(s.toString())==true }) } adapter.notifyDataSetChanged() } }) side_bar.setOnSelectIndexItemListener { index -> (0 until showList.size).forEach { if (index == showList[it].getInitial()) { val manager = lv_bank.mRecyclerView.layoutManager as LinearLayoutManager manager.scrollToPositionWithOffset(it, 0) return@setOnSelectIndexItemListener } } } tv_cancel.setOnClickListener { et_search.setText("") } adapter.setOnItemClickListener { _, position -> startActivityForResult(1,"code" to showList[position].bankCode) } } private fun getBankList(){ callNet(Api.getAllCard, getMapByAny()){ val bean = gson.fromJson(it, BankNameListBean::class.java) bean.data?.let { showList.clear() if (it.isNotEmpty()) { index.forEach { index-> it.filter { !it.bankName.isNullOrEmpty() }.forEach { if (index == it.getInitial()){ allList.add(it) } } } }else lv_bank.setLoadMoreText("暂无数据") showList.addAll(allList) adapter.notifyDataSetChanged() } } } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (resultCode == Activity.RESULT_OK){ setResult(resultCode, data) finish() } } }