【发布时间】:2014-07-11 10:13:13
【问题描述】:
我一直在网上寻找和搜索,甚至尝试查看官方 Android 文档以了解“片段之间的通信”或片段和活动的通信 (http://developer.android.com/training/basics/fragments/communicating.html),甚至尝试在 StackOverflow 上搜索一些问题提示我的问题,但他们似乎都没有回答我的问题。
我知道由主机Activity 实现的接口侦听器,用于将数据从Fragment 传递到主机Activity,并在我的项目中大量使用它。但我认为片段数据传递模型实际上只有在存在会触发该自定义事件的“元”事件(即onClick、onItemClick 等)时才有用。
但就我而言,我有一个包含RadioGroup 的片段,其中包含RadioGroup 的内容,其中第一个是具有多个EditTexts 的视图组,我需要将其内容发送回Fragment 的宿主 Activity 与其他几个对象。我的自定义事件被“元”事件触发,即RadioGroup.setOnCheckedChangeListener()。
为了形象化,这就是它在我的布局资源中的布局方式:
广播组
-单选按钮 1
--- LinearLayout(通过选中 RadioButton 1 切换为显示,选中其他 RadioButton 时隐藏)包含几个 EditText s
-----EditText 1
-----EditText 2
-----EditText 3
-----EditText 4
-单选按钮 2
-单选按钮 3
-单选按钮 4
每次我检查 RadioButton 1 时,它都会切换以显示带有 EditText 的 LinearLayout,显然它会触发 RadioGroup 的 setOnCheckedChangeListener(),在其中它会触发我的自定义事件,其中包含来自 EditText 的内容的自定义对象等参数.但是,当我不检查 RadioGroup 以及编辑/更新 EditText 时,不会调用我的自定义事件。
我想在那些EditTexts 上使用EditText.addTextChangedListener(),并在我填写表单上的所有数据时触发我的自定义事件。但我认为这样做有点不优雅,我想会有一种更优雅和更好的方式将这些 EditText 数据从它们的主机片段传递回 Activity,或者可能是从进入Activity
我的问题是,我如何将数据从片段传递或获取到 Activity,我不会依赖“元”事件来触发我的自定义事件或以其他方式。
【问题讨论】: