获取数据从几个EditText托管在片段回到活动



我一直在网上寻找和搜索,甚至试图检查官方Android文档的"片段之间的通信"或与片段和活动通信(http://developer.android.com/training/basics/fragments/communicating.html),甚至试图在StackOverflow上搜索几个问题只是为了得到一个提示我的问题,但他们似乎都没有回答我的情况。

我知道由主机Activity实现的接口侦听器将数据从Fragment传递到主机Activity,并在我的项目中大量使用它。但我认为,片段数据传递的模型实际上是有用的,只有当有一个"元"事件,即onClick, onItemClick,等),将触发自定义事件。

但是对于我的情况,我有一个包含RadioGroup的片段,与RadioGroup的内容,首先是一个具有几个EditText的视图组,其中我需要将其内容发送回Fragment的主机活动与其他几个对象。我的自定义事件是由一个"元"事件,即RadioGroup.setOnCheckedChangeListener()。为了可视化,这是我的布局资源

中的布局方式:

RadioGroup

-RadioButton 1

—LinearLayout(通过选中RadioButton 1切换为显示,当选中其他RadioButton时隐藏)包含几个EditText

——EditText 1

——EditText 2

——EditText 3

——EditText 4

-RadioButton 2

-RadioButton 3

-RadioButton 4

每次我检查RadioButton 1时,它切换到显示EditText的LinearLayout,显然它触发了RadioGroup的setOnCheckedChangeListener(),在其中它触发了我的自定义事件,参数像一个自定义对象的内容来自EditText s。然而,我的自定义事件不会被调用,当我不检查RadioGroup,当我编辑/更新EditText。

我想在这些EditText上使用EditText.addTextChangedListener(),并在填写表单上的所有数据时触发我的自定义事件。但我认为这样做有点不优雅,我想会有一个更优雅和更好的,如果有的话,传递那些EditText数据的方式从他们的主机片段回到活动,或者可能是从片段中获得数据到活动

我的问题是,我如何通过或从片段获取数据到活动中,我不会依赖于"元"事件来触发我的自定义事件或以其他方式。

为了与我的活动进行通信,我只需添加一个片段可以直接调用的方法。在Activity类中:

public void sendMessage(String message) {
    // Do something with the message
}

在片段中:

((MyActivity)getActivity()).sendMessage("Code Apprentice is the best!");

最新更新