如下:
MainActivity.Java里面:
public class MainActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
recentFragment = RecentFragment.newInstance(presenter);
}
}
.........
@Override
protected void onResume() {
super.onResume();
if (recentFragment != null) {
recentFragment.loadHistory();
}
}
RecentFragment.Java里面:
public class RecentFragment extends BaseFragment{
String mID;
public RecentFragment() {
super();
}
public static RecentFragment newInstance(UserPresenter presenter) {
RecentFragment fragment = new RecentFragment();
return fragment;
}
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
mID = "12356789";
}
在MainActivity里面创建一个Fragment对象,onCreate里面对Fragment进行初始化了。调用onResume的时候这个对象不为空 但是对象里的 mID变为空了。
找了很久原因才发现是这写错了:
MainActivity.Java里面:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_SCAN_CODE && resultCode == RESULT_OK) {
}
}
改后:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_SCAN_CODE && resultCode == RESULT_OK) {
}else{
super.onActivityResult(requestCode, resultCode, data);
}
}
就不会出现上面的问题。原因暂时没想明白。