我有一个Activity和2个fragment.Tab屏幕分为两部分。用户在editfield中进行编辑并按下按钮(来自FragmentA),然后应更新同一屏幕上fragmentB上的文本视图。
YourNewFragment ldf = new YourNewFragment();
Bundle args = new Bundle();
args.putString("YourKey", "YourValue");
ldf.setArguments(args);
// Inflate the fragment
getFragmentManager().beginTransaction().add(R.id.container, ldf)
.commit();
这是新片段的onCreateView中的片段B:
String value = getArguments().getString("YourKey");
一种方法是在片段A上创建一个回调,该回调在片段B上触发一个方法。
片段A:
private FragmentCallback mCallback;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
...
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mCallback.buttonPressed(textView.getText().toString());
}
});
}
public void setCallback(FragmentCallback callback) {
mCallback = callback;
}
public interface FragmentCallback {
void buttonPressed(String value);
}
片段B:
@Override
public void buttonPressed(String value) {
// do something here with value
}
活动:
fragmentA.setCallback(fragmentB);
只要确保片段B实现了FragmentCallback接口即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句