普通装货地址选择功能

This commit is contained in:
lijia 2024-10-31 17:18:30 +08:00
parent 56c784466c
commit 6c965eb521
7 changed files with 110 additions and 45 deletions

View File

@ -7,6 +7,7 @@ import com.chad.library.adapter4.QuickAdapterHelper
import com.chad.library.adapter4.viewholder.QuickViewHolder import com.chad.library.adapter4.viewholder.QuickViewHolder
import com.dahe.glex.bean.WayBillBean import com.dahe.glex.bean.WayBillBean
import com.dhsd.glowner.R import com.dhsd.glowner.R
import com.dhsd.glowner.bean.AddressBean
/** /**
* @ClassName SendGoodsAdapter * @ClassName SendGoodsAdapter
@ -14,16 +15,23 @@ import com.dhsd.glowner.R
* @Date 2024/2/4 09:37 * @Date 2024/2/4 09:37
* @Description TODO * @Description TODO
*/ */
class SendGoodsAdapter : BaseQuickAdapter<WayBillBean, QuickViewHolder>() { class SendGoodsAdapter : BaseQuickAdapter<AddressBean, QuickViewHolder>() {
override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: WayBillBean?) { override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: AddressBean?) {
item?.run {
if (0==position){ holder.run {
holder.setBackgroundResource(R.id.ivType,R.drawable.icon_loading) if (0==position){
}else if (position==items.size-1){ setBackgroundResource(R.id.ivType,R.drawable.icon_loading)
holder.setBackgroundResource(R.id.ivType,R.drawable.icon_unloading) }else if (position==items.size-1){
}else{ setBackgroundResource(R.id.ivType,R.drawable.icon_unloading)
holder.setBackgroundResource(R.id.ivType,R.drawable.icon_point) }else{
setBackgroundResource(R.id.ivType,R.drawable.icon_point)
}
setText(R.id.tvAddress, item.addressDetail)
setText(R.id.tvPerson, """${item.contactPerson} ${item.contactNumber}""".trim())
}
} }
} }
override fun onCreateViewHolder( override fun onCreateViewHolder(

View File

@ -101,7 +101,24 @@ data class AddressBean(
val updateBy: String, val updateBy: String,
val updateTime: String, val updateTime: String,
val userType: String val userType: String
) ) {
constructor() : this(
"", "", "", "", "",
"", "", "", "", "",
"", "", "", "", "", "",
"", "", "", "", "", "",
"", "", "", "", ""
)
}
data class AddressListBean(
val addressDetail: String,
val addressId: String
) {
constructor() : this("", "")
}

View File

@ -27,6 +27,7 @@ import com.dahe.mylibrary.utils.ToastUtils
import com.dahe.mylibrary.weight.SwitchView import com.dahe.mylibrary.weight.SwitchView
import com.dhsd.glowner.R import com.dhsd.glowner.R
import com.dhsd.glowner.adapter.SendGoodsAdapter import com.dhsd.glowner.adapter.SendGoodsAdapter
import com.dhsd.glowner.bean.AddressBean
import com.dhsd.glowner.bean.PostAddressBean import com.dhsd.glowner.bean.PostAddressBean
import com.dhsd.glowner.databinding.ActivityAddressEditBinding import com.dhsd.glowner.databinding.ActivityAddressEditBinding
import com.dhsd.glowner.ui.mine.activity.ChoiceCarActivity import com.dhsd.glowner.ui.mine.activity.ChoiceCarActivity
@ -93,23 +94,23 @@ class AddressEditOrAddActivity : BaseActivity<ActivityAddressEditBinding>(),
} }
var datas = mutableListOf<WayBillBean>( // var datas = mutableListOf<WayBillBean>(
WayBillBean(), // AddressBean(),
WayBillBean(), // AddressBean(),
WayBillBean() // AddressBean()
) // )
binding.recycler.run { // binding.recycler.run {
layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false) // layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false)
addItemDecoration( // addItemDecoration(
RecycleViewDivider( // RecycleViewDivider(
LinearLayout.VERTICAL, // LinearLayout.VERTICAL,
ConvertUtils.dp2px(14.0f), // ConvertUtils.dp2px(14.0f),
Color.TRANSPARENT // Color.TRANSPARENT
) // )
) // )
adapter = SendGoodsAdapter() // adapter = SendGoodsAdapter()
adapter as SendGoodsAdapter // adapter as SendGoodsAdapter
}.submitList(datas) // }.submitList(datas)
binding.run { binding.run {
tvSSQ.setOnClickListener(OnLimitClickHelper(this@AddressEditOrAddActivity)) tvSSQ.setOnClickListener(OnLimitClickHelper(this@AddressEditOrAddActivity))

View File

@ -3,6 +3,7 @@ package com.dhsd.glowner.ui.address
import BaseObserver import BaseObserver
import DataManager import DataManager
import RxHttpCallBack import RxHttpCallBack
import android.app.Activity
import android.content.Intent import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.os.Bundle import android.os.Bundle
@ -28,6 +29,7 @@ import com.dhsd.glowner.ui.mine.activity.ChoiceCarActivity
import com.dhsd.glowner.utils.CommonPopUtils import com.dhsd.glowner.utils.CommonPopUtils
import com.dhsd.glowner.utils.OnLimitClickHelper import com.dhsd.glowner.utils.OnLimitClickHelper
import com.dhsd.glowner.utils.OnLimitClickListener import com.dhsd.glowner.utils.OnLimitClickListener
import com.google.gson.Gson
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers import io.reactivex.rxjava3.schedulers.Schedulers
@ -66,12 +68,16 @@ class AddressListActivity : BaseActivity<ActivityAddressListBinding>(),
adapter as AddressAdapter adapter as AddressAdapter
}.apply { }.apply {
isStateViewEnable = true isStateViewEnable = true
setOnItemClickListener { adapter, view, position -> setOnItemClickListener { adapter, view, position ->
// adapter.items.find { it.isSelect }?.isSelect = false // adapter.items.find { it.isSelect }?.isSelect = false
// adapter.getItem(position)?.isSelect = true // adapter.getItem(position)?.isSelect = true
notifyDataSetChanged()
setResult(Activity.RESULT_OK,Intent().apply {
putExtras(Bundle().apply {
putString(AppConfig.BEAN, Gson().toJson(adapter.items[position]))
})
})
finish()
} }
addOnItemChildClickListener(R.id.tvEdit) { adapter, _, position -> addOnItemChildClickListener(R.id.tvEdit) { adapter, _, position ->

View File

@ -72,7 +72,8 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>(), RefreshCallBack {
} }
binding.ivMul.setOnClickListener { binding.ivMul.setOnClickListener {
ActivityUtils.startActivity(mContext, SendGoodsActivity::class.java) showToast("开发中,敬请期待")
// ActivityUtils.startActivity(mContext, SendGoodsActivity::class.java)
} }
initData() initData()

View File

@ -1,12 +1,16 @@
package com.dhsd.glowner.ui.home.activtiy package com.dhsd.glowner.ui.home.activtiy
import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.os.Bundle import android.os.Bundle
import android.widget.LinearLayout import android.widget.LinearLayout
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.chad.library.adapter4.BaseQuickAdapter import com.chad.library.adapter4.BaseQuickAdapter
import com.chad.library.adapter4.BaseQuickAdapter.OnItemChildClickListener import com.chad.library.adapter4.BaseQuickAdapter.OnItemChildClickListener
import com.dahe.gldriver.base.AppConfig
import com.dahe.glex.bean.WayBillBean import com.dahe.glex.bean.WayBillBean
import com.dahe.mylibrary.base.BaseActivity import com.dahe.mylibrary.base.BaseActivity
import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
@ -15,8 +19,11 @@ import com.dahe.mylibrary.utils.ConvertUtils
import com.dahe.mylibrary.utils.ToastUtils import com.dahe.mylibrary.utils.ToastUtils
import com.dhsd.glowner.R import com.dhsd.glowner.R
import com.dhsd.glowner.adapter.SendGoodsAdapter import com.dhsd.glowner.adapter.SendGoodsAdapter
import com.dhsd.glowner.bean.AddressBean
import com.dhsd.glowner.databinding.ActivitySendGoodsBinding import com.dhsd.glowner.databinding.ActivitySendGoodsBinding
import com.dhsd.glowner.ui.address.AddressListActivity import com.dhsd.glowner.ui.address.AddressListActivity
import com.dhsd.glowner.ui.mine.activity.ChoiceCarActivity
import com.google.gson.Gson
/** /**
* @ClassName SendGoodsActivity * @ClassName SendGoodsActivity
@ -25,6 +32,9 @@ import com.dhsd.glowner.ui.address.AddressListActivity
* @Description 普通发货 * @Description 普通发货
*/ */
class SendGoodsActivity : BaseActivity<ActivitySendGoodsBinding>() { class SendGoodsActivity : BaseActivity<ActivitySendGoodsBinding>() {
private lateinit var datas: MutableList<AddressBean>
private lateinit var adapter: SendGoodsAdapter
override fun initView(savedInstanceState: Bundle?) { override fun initView(savedInstanceState: Bundle?) {
setStatusBarColor(R.color.white) setStatusBarColor(R.color.white)
setTitleBar("普通装货", true) setTitleBar("普通装货", true)
@ -34,9 +44,10 @@ class SendGoodsActivity : BaseActivity<ActivitySendGoodsBinding>() {
} }
var datas = mutableListOf<WayBillBean>(
WayBillBean(), datas = mutableListOf<AddressBean>(
WayBillBean() AddressBean(),
AddressBean()
) )
binding.llGoods.setOnClickListener { binding.llGoods.setOnClickListener {
@ -48,11 +59,11 @@ class SendGoodsActivity : BaseActivity<ActivitySendGoodsBinding>() {
binding.btnOk.setOnLongClickListener { binding.btnOk.setOnLongClickListener {
ActivityUtils.startActivity(mContext,SendSuccActivity::class.java) ActivityUtils.startActivity(mContext, SendSuccActivity::class.java)
return@setOnLongClickListener true return@setOnLongClickListener true
} }
var adapter = binding.recycler.run { adapter = binding.recycler.run {
layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false) layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false)
addItemDecoration( addItemDecoration(
RecycleViewDivider( RecycleViewDivider(
@ -63,15 +74,34 @@ class SendGoodsActivity : BaseActivity<ActivitySendGoodsBinding>() {
) )
adapter = SendGoodsAdapter() adapter = SendGoodsAdapter()
adapter as SendGoodsAdapter adapter as SendGoodsAdapter
}.run { }.apply {
addOnItemChildClickListener(R.id.tvSelAddress) { adapter, view, position -> setOnItemClickListener { adapter, view, position ->
ActivityUtils.startActivity(mContext, AddressListActivity::class.java) ActivityUtils.startActivityForResult(
this@SendGoodsActivity,
AddressListActivity::class.java,
position
)
} }
this }
}.submitList(datas) adapter.submitList(datas)
} }
override fun initDate() { override fun initDate() {
} }
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == AppCompatActivity.RESULT_OK) {
data?.extras?.let {
val string = it.getString(AppConfig.BEAN, "")
if (string.isNotEmpty()) {
val addressBean = Gson().fromJson<AddressBean>(string, AddressBean::class.java)
datas[requestCode] = addressBean
adapter.notifyItemChanged(requestCode)
}
}
}
}
} }

View File

@ -29,19 +29,21 @@
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
android:id="@+id/tvAddress"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:maxLines="2" android:maxLines="1"
android:text="河南省郑州市金水区农业路经 三路东南角银丰商务A座" android:hint="请选择详细地址"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/sp_16" /> android:textSize="@dimen/sp_16" />
<TextView <TextView
android:id="@+id/tvPerson"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_4" android:layout_marginTop="@dimen/dp_4"
android:maxLines="2" android:maxLines="1"
android:text="刘静 15424412450" android:hint="联系人 联系人手机号"
android:textColor="@color/color_9" android:textColor="@color/color_9"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
</LinearLayout> </LinearLayout>