簡體   English   中英

如何將多個 EditText 值從 RecyclerView 適配器傳遞到主 Activity?

[英]How to pass multiple EditText values from RecyclerView adapter to main Activity?

我想將多個 EditText 值從 RecyclerView 傳遞到主 Activity。 我用 BroadcastReceiver 來處理這個問題。 而 addTextChangedListener 用於從 EditText 中獲取變化的文本。 在這里我分享了我的代碼。 請檢查並建議我一個解決方案。

適配器代碼:

holder.textBox.addTextChangedListener(object : TextWatcher {
    override fun afterTextChanged(p0: Editable?) {
        var texts = ArrayList<String>()
        texts.add(p0.toString())
        val intent = Intent("custom-message")
        intent.putStringArrayListExtra("quantity", texts)
        LocalBroadcastManager.getInstance(context).sendBroadcast(intent)

    }

    override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {}

    override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {}
})

主要活動代碼:

val broadCastReceiver = object : BroadcastReceiver() {
    override fun onReceive(contxt: Context?, intent: Intent?) {
        qty = intent!!.getStringArrayListExtra("quantity")
        Log.d("broadCastReceiver", qty.toString())
    }
}

LocalBroadcastManager.getInstance(this)
    .registerReceiver(broadCastReceiver, IntentFilter("custom-message"))

只需使用回調function。

  1. 做一個回調接口
  2. 確保您的主要活動實現了該回調接口。
  3. 從 recycleview 適配器,創建一個 object 回調 function 存在於界面中。
  4. 更改文本時調用回調 function 而不是廣播接收器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM