我遇到了标题所说的问题。
public class NewsCategoryFragment extends Fragment{
private String cateTitle;
public static NewsCategoryFragment newInstance(String title){
NewsCategoryFragment fragment = new NewsCategoryFragment();
Bundle args = new Bundle();
args.putString("title",title);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
xfReaderService = ((MainActivity)getActivity()).getReaderService();
newsInfoBeanList = new ArrayList<>();
Bundle bundle = getArguments();
cateTitle = bundle.getString("title");
//Log.i("fragment","Bundle ______ content:" + cateTitle);
}
privoid void method1(){log.i("..",cateTitle);...}
privoid void method2(){log.i("..",cateTitle);...}
}
这是我的代码简单版本。我有2个方法需要var cateTitle
,但是它总是返回我的错误值(返回下一个片段值)。
如何解决呢?感谢帮助。
而且我很好奇,cateTitle
是私有且非静态的,为什么我可以获取下一个片段的值?
这是我使用newInstance代码的方式:
mFragmentList.add(NewsCategoryFragment.newInstance("news"));
答案 0 :(得分:0)
如果您在任何地方都犯了错误,我会喜欢这张支票
这是我的代码,用于通过new Fragment
调用newInstance()
new DynamicFragment().newInstance("VALUE_AM_PASSING");
然后在DynamicFragment
public static DynamicFragment newInstance(String val) {
DynamicFragment fragment = new DynamicFragment();
Bundle args = new Bundle();
args.putString("someValue", val);
fragment.setArguments(args);
return fragment;
}
在此onCreateView()
内部方法之后,将检索到这样的值
String tempString = getArguments().getString("someValue");
希望这个答案对您有帮助。