我正在尝试将一些数据从Activity发送到Fragment。
我需要在片段的 onResume 方法中获取数据,但我想这是不可能的?
参数只能在onCreate()中接收?
的活动:
string = '000,001,100,001'
pattern = '(.*)00(.*),(.*)00(.*)'
for m in re.finditer(pattern, string):
print(m.groups())
片段:
public void someMethod() {
String someString = "test";
Bundle bundle = new Bundle();
bundle.putString("message", someString);
VFragment.getInstance().setArguments(bundle);
}
答案 0 :(得分:1)
好吧,我不知道builder()
和build
是什么,但这是好习惯......
public static VFragment newInstance(String text) {
Bundle b = new Bundle();
b.putExtrs("message", text)
VFragment mF = new VFragment();
mF.setArguments(b);
return mF;
}
试一试。 Reference
答案 1 :(得分:0)
以下是我的代码示例:
Fragment
1
reservation_main_data reservation_main_data = new reservation_main_data();
Bundle bundle = new Bundle();
bundle.putCharSequence(bundle_string, txt_results_experience.getText()); //Sending the experience name clicked to another fragment
reservation_main_data.setArguments(bundle);
FragmentManager manager = getActivity().getSupportFragmentManager();
manager.beginTransaction().replace(R.id.framelayout_secundary, reservation_main_data, reservation_main_data.getTag()).commit();
Fragment
2
Bundle bundle = this.getArguments();
if (bundle != null) {
CharSequence myInt = bundle.getCharSequence(bundle_string);
txt_results_experience.setText(String.valueOf(myInt));
}
答案 2 :(得分:0)
首先感谢所有回应并试图提供帮助的人。 我的错误,我忘了提到我使用Android Annotations。
使用注释执行此操作的正确方法是:
在' targetFragment'中设置FragmentArg:
@FragmentArg
String receiveA;
制作片段的接收者方法:
public static VFragment getInstance(String message) {
// Do something with String message
return VFragment_.builder().receiveA(message).build();
}
在'来源'中拨打电话发送数据的活动:
VFragment.getInstance("This is a test");
结果在targetFragment中:
@Override
public void onResume() {
super.onResume();
Log.v(TAG, message); // Prints 'This is a test'
}