Activity向Fragment传递数据
- Activity.java
Bundle bundle = new Bundle();
bundle.putString("message", "wonima");
BlankFragment bf = new BlankFragment();
bf.setArguments(bundle);
- Fragment.java
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Bundle bundle = getArguments();
String msg = bundle.getString("message");
View view = inflater.inflate(R.layout.fragment_blank, container, false);
TextView tv = view.findViewById(R.id.tv);
tv.setText(msg);
return view;
}
Fragment向Activity传递数据
主要通过一个接口作为回调的形式实现
- IFragmentCallback.java
public interface IFragmentCallback {
void sendMsgToActivity(String string);
String getMsgFromActivity(String msg);
}
- Fragment.java
private IFragmentCallback fragmentCallback;
public void setFragmentCallback(IFragmentCallback callback) {
fragmentCallback = callback;
}
Button btn = view.findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fragmentCallback.sendMsgToActivity("我尼玛");
}
});
- Activity.java
BlankFragment bf = new BlankFragment();
bf.setFragmentCallback(new IFragmentCallback() {
@Override
public void sendMsgToActivity(String string) {
ToastUtil.show(SwitchFragmentActivity.this, string);
}
@Override
public String getMsgFromActivity(String msg) {
return "";
}
});