Android 即使在OnCreateView上膨胀,视图仍然为空
我已经在同一次撞车事故中挣扎了4个小时,但我仍然无法找出原因。任何善良的灵魂能启发我吗?我得到了这个错误 java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.view.view android.view.view.findViewById(int)” 当它开始加载我的textview lbl时,它就崩溃了,并告诉我这个错误 下面是我的代码:Android 即使在OnCreateView上膨胀,视图仍然为空,android,android-fragments,Android,Android Fragments,我已经在同一次撞车事故中挣扎了4个小时,但我仍然无法找出原因。任何善良的灵魂能启发我吗?我得到了这个错误 java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.view.view android.view.view.findViewById(int)” 当它开始加载我的textview lbl时,它就崩溃了,并告诉我这个错误 下面是我的代码: public class BookDoc extends Fragment { V
public class BookDoc extends Fragment {
View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
if (view != null) {
ViewGroup parent = (ViewGroup) view.getParent();
if (parent != null) {
parent.removeView(view);
}
}
try {
view = inflater.inflate(R.layout.activity_main, container, false);
} catch (InflateException e) {
}
StrictMode.ThreadPolicy policy = new StrictMode.
ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
Typeface type = Typeface.createFromAsset(getActivity().getAssets(),"fonts/verdana.ttf");
TextView lbl = (TextView) view.findViewById(R.id.textViewa);
return view
}
这是我的xml:
您的视图未初始化,仍然为空。在“if语句”之前,按如下方式初始化视图:
view = (View) inflater.inflate(R.layout.your_layout_file, container, false);
其他一切都很好你有没有遇到过膨胀异常?然后,你应该改变你的布局,而不是只是不崩溃,继续,好像一切都好。(空的catch块是个问题,不是解决方案)旁注-不要关闭严格模式线程策略。这样做可以确保你的代码质量是垃圾,你的线程将导致巨大的UI延迟。触摸StrictMode是一种迹象,表明你实际上不知道自己在做什么,而且你正在复制粘贴白痴提供的非常古老、非常无厘头的教程。如果你的代码正常,你必须验证manifiest.xml文件,在这里你应该添加你的活动,并允许你的应用程序需要。活动的示例:。许可证示例:“在您的“if语句”之前…”-因此您希望OP初始化视图,然后从该视图组中删除尚未添加到父视图组的新膨胀视图?@0X0nosugar我只是解决错误,而不是解决逻辑问题。他正在检查父视图组是否不为null,因此它不会删除没有父视图的视图Thank you@Dawit!我试图从eclipse移植一个旧项目。。几年前它在eclipse上编译时的工作方式有什么不同吗ago@0X0nosugar我的逻辑错了吗?什么是推荐的解决方案,因为我是全新的android@user3145668它应该可以正常工作,可能需要升级gradle并构建文件。但同样,它会正常工作