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?
答案 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;
}
希望它有所帮助!