18034727885
2026-09-18 1328a7b0b90825b1fd63bca8f7675e52df8b151d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package com.igo.user.dialog
 
import android.os.Bundle
import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.DialogFragment
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import cn.sinata.xldutils.activity.BaseActivity
import cn.sinata.xldutils.utils.myToast
import com.igo.user.R
import com.igo.user.interfaces.StringCallback
import com.igo.user.network.HttpManager
import com.igo.user.network.entity.MyBankCard
import com.igo.user.network.request
import com.igo.user.ui.mine.adapter.SimpleBankCardAdapter
import org.jetbrains.anko.matchParent
import org.jetbrains.anko.support.v4.find
import org.jetbrains.anko.wrapContent
 
class ChooseCardDialog : DialogFragment() {
    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        return inflater.inflate(R.layout.dialog_list, container, false)
    }
 
    private val list = arrayListOf<MyBankCard>()
    private val adapter = SimpleBankCardAdapter(list)
    private val rv_card by lazy { find<RecyclerView>(R.id.rv_card) }
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setStyle(STYLE_NO_FRAME, cn.sinata.xldutils.R.style.Dialog)
    }
 
    override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)
        dialog?.window?.setLayout(matchParent, wrapContent)
        dialog?.window?.setGravity(Gravity.BOTTOM)
        dialog?.setCanceledOnTouchOutside(true)
    }
 
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        rv_card.layoutManager = LinearLayoutManager(requireContext())
        rv_card.adapter = adapter
        getData()
        adapter.setOnItemClickListener { view, position ->
            callback?.onRlt(list[position].id)
            dismissAllowingStateLoss()
        }
    }
 
    private fun getData(){
        HttpManager.getBindCardList().request(requireActivity() as BaseActivity,success = { _, data->
            if (data.isNullOrEmpty()){
                myToast(getString(R.string.请先绑定银行卡))
                dismissAllowingStateLoss()
            }else{
                list.clear()
                list.addAll(data?: arrayListOf())
                adapter.notifyDataSetChanged()
            }
        })
    }
 
    private var callback: StringCallback? = null
 
    fun setCallback(callback: StringCallback) {
        this.callback = callback
    }
}