java如何在片段的编辑文本被编辑时通知活动(Android)? 1 周,5 日 Questions & Answers 117 我的一个片段中有一个编辑文本。 我的活动中还有一个字符串字段,用于启动片段,每次edittext中的文本发生更改时,我都想相应地更改活动中的字符串,但我不确定该怎么做
# 1 楼答案 创建一个这样的界面 interface OnDataChangeListener { fun onChange(string: String) } 在片段的构造函数中,将此接口的实例作为参数传递 class MyFragment(val onDataChangeListener: OnDataChangeListener): Fragment 现在,当编辑文本中的文本发生变化时,调用此接口的方法 editText.addTextChangedListener(object : TextWatcher{ override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { } override fun afterTextChanged(s: Editable?) { onDataChangeListener.onChange(s.toString()) } }) 现在在我们的活动中实现这个接口 class MainActivity : AppCompatActivity(), OnDataChangeListener { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) AppUtils.addFragment(this, MyFragment(this), R.id.fragment_container) } override fun onChange(string: String) { val textView = findViewById<TextView>(R.id.textView) textView.text = string } } 就这样。这将为您提供所需的输出
# 2 楼答案 创建Activity实现的接口,并将其传递给Fragment。然后,在你的Fragment中添加一个TextWatcher到EditText中,并通知onTextChanged中的侦听器。这种方法基于Android Docs
# 1 楼答案
创建一个这样的界面
在片段的构造函数中,将此接口的实例作为参数传递
现在,当编辑文本中的文本发生变化时,调用此接口的方法
现在在我们的活动中实现这个接口
就这样。这将为您提供所需的输出
# 2 楼答案
创建
Activity
实现的接口,并将其传递给Fragment
。然后,在你的Fragment
中添加一个TextWatcher
到EditText
中,并通知onTextChanged
中的侦听器。这种方法基于Android Docs