Android如何将数据从片段放到主要活动中

时间:2017-08-29 10:44:42

标签: android

For Fragment(将数据放入活动)

m=(MainActivity)getActivity();
new Handler().postDelayed(new Runnable() {
      @Override
      public void run() {
         Intent in=new Intent(getActivity(),MainActivity.class)
         in.putExtra("test",test);
         startActivty(in)
      }
},10);

For Activity(从片段中获取数据)

{
String get_data=getIntent.getStringExtra("test");
}
//it will return always null...any body help me?

2 个答案:

答案 0 :(得分:3)

startActivty(in)将启动相同的活动。

除此之外,您还可以使用Interface。这是传递数据的最简单方法。

在你的片段中,你可以有一个像

这样的界面
SubmitData mSubmitData;

public interface SubmitData{
        void DataListener(String s);
    }


mSubmitData.DataListener("data to be sent");

在您的活动中,实施SubmitData界面。它将使您覆盖DataListener方法,您可以在其中获取数据。

public class MyActivity extends AppCompatActivity implements YourFragment.SubmitData{

     @Override
      public void DataListener(String s) {
         // Data from the fragment
    }

答案 1 :(得分:0)

这个问题已被多次询问和回答。您可以在https://stackoverflow.com/a/9977370/5828132

找到有效的回复

基本上,它包括在Fragment中创建一个接口(例如),包括一个简单的方法。 Fragment必须声明该类型的字段,托管Fragment的Activity必须实现( implements )该接口。在Fragment生命周期的 onAttach()回调中,两个实体通常使用显式转换连接,即:

@Override
public void onAttach(Context context) {
   super.onAttach(context);
   // fragmentField_interfaceType = (interfaceType) context;
}

希望它有所帮助!