package com.future.driver.ui.main
|
|
import android.app.Activity
|
import android.view.inputmethod.EditorInfo
|
import androidx.recyclerview.widget.LinearLayoutManager
|
import com.future.driver.R
|
import com.future.driver.base.MyBaseActivity
|
import com.future.driver.bean.OpenCity
|
import com.future.driver.bean.OpenCityBean
|
import com.future.driver.netUtls.Api
|
import com.future.driver.netUtls.callNet
|
import com.future.driver.netUtls.getMapByAny
|
import com.future.driver.utils.MyUtils
|
import com.google.gson.Gson
|
import kotlinx.android.synthetic.main.activity_choose_city.*
|
import kotlinx.android.synthetic.main.activity_choose_city.tv_cancel
|
import kotlinx.android.synthetic.main.activity_search_site.*
|
import kotlinx.android.synthetic.main.driver_two.*
|
|
class ChooseCityActivity:MyBaseActivity() {
|
override fun setContentView() {
|
setContentView(R.layout.activity_choose_city)
|
}
|
|
private val datasAll = arrayListOf<OpenCity>() //所有数据源
|
private val datas = arrayListOf<OpenCity>() //展示数据源(搜索后过滤)
|
private val adapter = OpenCityAdapter(datas)
|
|
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"
|
)
|
|
override fun initView() {
|
setTitleText("切换城市")
|
val currentCityName = intent.getStringExtra("currentCityName")
|
tv_current.text = String.format("当前选择:%s",currentCityName)
|
lv_city.layoutManager = LinearLayoutManager(this)
|
lv_city.adapter = adapter
|
side_bar.setOnSelectIndexItemListener { index ->
|
(0 until datas.size).forEach {
|
if (index == datas[it].getInitial()) {
|
val manager = lv_city.layoutManager as LinearLayoutManager
|
manager.scrollToPositionWithOffset(it, 0)
|
return@setOnSelectIndexItemListener
|
}
|
}
|
}
|
|
callNet(Api.queryOpenCityUser, getMapByAny()){
|
val data = Gson().fromJson(it, OpenCityBean::class.java).data
|
data?.let {
|
datas.clear()
|
if (it.isNotEmpty()) {
|
index.forEach { index->
|
it.filter { it.name.isNotEmpty() }.forEach {
|
if (index == it.getInitial()){
|
datasAll.add(it)
|
}
|
}
|
}
|
}
|
datas.addAll(datasAll)
|
adapter.notifyDataSetChanged()
|
}
|
}
|
}
|
|
override fun setOnclick() {
|
tv_cancel.setOnClickListener {
|
finish()
|
}
|
|
et_search.setOnEditorActionListener { v, actionId, event ->
|
if (actionId == EditorInfo.IME_ACTION_SEARCH){
|
MyUtils.getInstans().hideKeyboard(et_search)
|
val key = et_search.text.toString()
|
datas.clear()
|
datasAll.forEach {
|
if (it.name.contains(key)){
|
datas.add(it)
|
}
|
}
|
adapter.notifyDataSetChanged()
|
}
|
return@setOnEditorActionListener false
|
}
|
|
adapter.setOnItemClickListener { _, position ->
|
setResult(Activity.RESULT_OK,intent.putExtra("name" , datas[position].name).putExtra("lat" , datas[position].lat).putExtra("lon" , datas[position].lon))
|
finish()
|
}
|
}
|
}
|