【发布时间】:2015-07-12 07:53:19
【问题描述】:
我有一个 FragmentActivity,我试图在 onCreateView 方法中恢复 Sharedpreferences。
我的代码是:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Bundle args = getArguments();
int position = args.getInt(ARG_OBJECT);
int tabLayout = 0;
switch (position) {
case 0:
tabLayout = R.layout.layout_one;
break;
case 1:
tabLayout = R.layout.layout_two;
break;
}
View rootView = inflater.inflate(tabLayout, container, false);
//Get restore state of all checkboxes
SharedPreferences prefs = getActivity().getSharedPreferences(PREFS_NAME, 0);
String topack00value = prefs.getString("topack00", "");
CheckedTextView topack00 = (CheckedTextView) rootView.findViewById(R.id.topack_00);
switch (topack00value) {
case "yes":
topack00.setTextColor(getResources().getColor(R.color.cyan700));
topack00.setPaintFlags(topack00.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
break;
case "no":
topack00.setTextColor(getResources().getColor(R.color.black));
topack00.setPaintFlags(topack00.getPaintFlags() & (~Paint.STRIKE_THRU_TEXT_FLAG));
break;
default:
topack00.setTextColor(getResources().getColor(R.color.black));
topack00.setPaintFlags(topack00.getPaintFlags() & (~Paint.STRIKE_THRU_TEXT_FLAG));
break;
}
return rootView;
我不断尝试调用空对象资源错误。错误指向 topack00 checktextView,但我已经将它链接到“rootView”视图。
我看过一些类似的案例,但我的似乎还可以。或者我完全错过了什么。 类似问题: Attempt to invoke virtual method
在这个问题上卡住了 5 个小时。 :|
【问题讨论】:
-
你能把你的logcat贴出来吗?
-
顺便说一句,您是否尝试使用
getIntent().getExtras()而不是getArguments()?由于它是一个活动而不是一个片段,另外,请检查您的args数据,您是否传递了空值? -
感谢 blueware。实际上 onCreateView 位于扩展 Fragment 的类 TabFragment 内。
标签: android android-fragments nullpointerexception sharedpreferences