Android NullPointerException textView.setText()
我来这里是因为我无法弄清楚为什么我会在没有有效原因的情况下得到一个nullPointerException,我也做了一个try-and-catch块来帮助我解决这个问题,但是消息是null,printStackTrace是(void),这个问题发生在数组循环中,在第一项中,一切正常,但在第二项中,它抛出NullPointerExceptionAndroid NullPointerException textView.setText(),android,nullpointerexception,textview,Android,Nullpointerexception,Textview,我来这里是因为我无法弄清楚为什么我会在没有有效原因的情况下得到一个nullPointerException,我也做了一个try-and-catch块来帮助我解决这个问题,但是消息是null,printStackTrace是(void),这个问题发生在数组循环中,在第一项中,一切正常,但在第二项中,它抛出NullPointerException 09-16 14:45:09.053: E/AndroidRuntime(4332): FATAL EXCEPTION: main 09-16 14:4
09-16 14:45:09.053: E/AndroidRuntime(4332): FATAL EXCEPTION: main
09-16 14:45:09.053: E/AndroidRuntime(4332): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.moody/activities.MainActivity}: java.lang.NullPointerException 09-16 14:45:09.053: E/AndroidRuntime(4332): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
09-16 14:45:09.053: E/AndroidRuntime(4332): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
09-16 14:45:09.053: E/AndroidRuntime(4332): at android.app.ActivityThread.access$600(ActivityThread.java:123) 09-16 14:45:09.053: E/AndroidRuntime(4332): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
09-16 14:45:09.053: E/AndroidRuntime(4332): at android.os.Handler.dispatchMessage(Handler.java:99)
09-16 14:45:09.053: E/AndroidRuntime(4332): at android.os.Looper.loop(Looper.java:137) 09-16 14:45:09.053: E/AndroidRuntime(4332): at android.app.ActivityThread.main(ActivityThread.java:4424)
09-16 14:45:09.053: E/AndroidRuntime(4332): at java.lang.reflect.Method.invokeNative(Native Method)
09-16 14:45:09.053: E/AndroidRuntime(4332): at java.lang.reflect.Method.invoke(Method.java:511)
09-16 14:45:09.053: E/AndroidRuntime(4332): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
09-16 14:45:09.053: E/AndroidRuntime(4332): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
09-16 14:45:09.053: E/AndroidRuntime(4332): at dalvik.system.NativeStart.main(Native Method)
09-16 14:45:09.053: E/AndroidRuntime(4332): Caused by: java.lang.NullPointerException
09-16 14:45:09.053: E/AndroidRuntime(4332): at fragments.TopicsPreview.createTopicsContent(TopicsPreview.java:162)
09-16 14:45:09.053: E/AndroidRuntime(4332): at fragments.TopicsPreview.createTopicsRows(TopicsPreview.java:85)
09-16 14:45:09.053: E/AndroidRuntime(4332): at fragments.TopicsPreview.onCreateView(TopicsPreview.java:59)
09-16 14:45:09.053: E/AndroidRuntime(4332): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:828)
09-16 14:45:09.053: E/AndroidRuntime(4332): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1032)
09-16 14:45:09.053: E/AndroidRuntime(4332): at android.app.BackStackRecord.run(BackStackRecord.java:622)
09-16 14:45:09.053: E/AndroidRuntime(4332): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1382)
09-16 14:45:09.053: E/AndroidRuntime(4332): at android.app.Activity.performStart(Activity.java:4474)
09-16 14:45:09.053: E/AndroidRuntime(4332): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1929)
09-16 14:45:09.053: E/AndroidRuntime(4332): ... 11 more
受保护的void createTopicsContent(MoodleCourseContent[]courseContent,
布局扁平充气机,线性布局插入点,线槽ID){
对于(int j=0;j
尝试在onCreate方法之外运行此代码。日志显示“无法启动活动”,当onCreate方法中的某些内容引发异常时,会发生这种情况。这也可能是此代码失败的原因,TextView尚未初始化
试着用onResume方法运行这段代码。它解决了几个结构问题,因为我没有检查空数组和其他几个错误,这是我们在匆忙中开发的结果。感谢大家花费的时间;)PS:管理员可以删除这个问题吗?这个问题对任何人都没有帮助没有必要每次循环都膨胀视图并初始化文本视图。初始化一次并将文本追加到textviewtry的topicModule.append(modules[i].getName());”“不!?我正在创建几个textView和几个View,并将它们添加到一个LinearLayoutOK此我将重新构建并尝试,还将尝试topicModule.appendCheck是否使用正确的ID设置topicModule。另外,在FindViewBydYou可以在任何TextView上调用setText inside onCreate之后检查topicModule是否为null。解决的是几个结构问题,因为我没有检查null数组和其他几个错误,这是我们在匆忙中开发的结果。感谢大家花费的时间;)PS:管理员可以删除这个吗,这个问题对任何人都没有帮助
protected void createTopicsContent(MoodleCourseContent[] courseContent,
LayoutInflater inflater, LinearLayout insertPoint, String courseId) {
for (int j = 0; j < courseContent.length; j++) {
final LinearLayout row = new LinearLayout(getActivity());
row.setLayoutParams(new LayoutParams(
android.view.ViewGroup.LayoutParams.MATCH_PARENT,
android.view.ViewGroup.LayoutParams.WRAP_CONTENT));
View topicsView = inflater.inflate(R.layout.topics_preview_context,
null);
TextView topicName = (TextView) topicsView
.findViewById(R.id.topic_label);
topicName.setText(courseContent[j].getName());
// Loop for the modules array
MoodleModule[] modules = courseContent[j].getMoodleModules();
for (int i = 0; i < modules.length; i++) {
final TextView topicModule = (TextView) topicsView
.findViewById(R.id.content_preview_textView);
if (!modules[i].getName().isEmpty()) {
try {
topicModule.setText(modules[i].getName());
} catch (NullPointerException e) {
e.printStackTrace();
e.getMessage();
}
}
// Where the textview id will be course id and the textview
// tag will be the topic id
topicModule.setId(Integer.parseInt(courseId));
topicModule.setTag(Long.toString(modules[i].getId()));
row.addView(topicsView);
insertPoint.addView(row);
}
}
}