1通过Bundle(Activity向Fragment传递数据)
activity中
Bundle bundle = new Bundle();
bundle.putString("message", " 我喜欢享学课堂");
BlankFragment1 bf = new BlankFragment1();
bf.setArguments(bundle);
BlankFragment1中拿到activity中的值
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundle = this.getArguments();
String string = bundle.getString("message");
Log.d(TAG, "onCreate: " + string);
}
2通过接口回调机制(Fragment向Activity传递数据)
先创建回调接口IFragmentCallback
public interface IFragmentCallback {
void sendMsgToActivity(String msg);
String getMsgFromActivity(String msg);
}
Fragment进行回调赋值
private IFragmentCallback fragmentCallback;
public void setFragmentCallback(IFragmentCallback callback){
fragmentCallback = callback;
}
//可在button中做触发事件
fragmentCallback.sendMsgToActivity("hello, I'm from Fragment");
Activity通过设置接口回调接收数据
BlankFragment1 bf = new BlankFragment1();
bf.setFragmentCallback(new IFragmentCallback() {
@Override
public void sendMsgToActivity(String msg) {
Toast.makeText(MainActivity.this,msg, Toast.LENGTH_SHORT).show();
}
@Override
public String getMsgFromActivity(String msg) {
return "hello, I am from activity";
}
});
2.1通过接口回调机制(Activity向Fragment传递数据)
先创建回调接口IFragmentCallback
public interface IFragmentCallback {
void sendMsgToActivity(String msg);
String getMsgFromActivity(String msg);
}
Fragment进行回调赋值
private IFragmentCallback fragmentCallback;
public void setFragmentCallback(IFragmentCallback callback){
fragmentCallback = callback;
}
//可在button中做触发事件
String msg = fragmentCallback.getMsgFromActivity("null");
Toast.makeText(BlankFragment1.this.getContext(), msg, Toast.LENGTH_SHORT).show();
Activity通过设置接口回调接收数据
BlankFragment1 bf = new BlankFragment1();
bf.setFragmentCallback(new IFragmentCallback() {
@Override
public void sendMsgToActivity(String msg) {
}
@Override
public String getMsgFromActivity(String msg) {
return "hello, I am from activity";
}
});
3通过eventBus