繁体   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