Я пытаюсь получить textview как android.r.id.title
, чтобы показать имя моей вкладки.
Но он бросает NullPointerException на 2.2, но он отлично работает на >=4.x
.Получение исключения NullPointer при использовании android.R.id.title
Вот мой код для справки.
for (int i = 0; i < mTabHost.getTabWidget().getChildCount(); i++) {
mTabHost.getTabWidget().getChildAt(i).getLayoutParams().height /= 2;
Log.i("TESTING WIDTH OF TABS ", ""
+ mTabHost.getTabWidget().getChildAt(i).getWidth());
View tabView = getTabWidget().getChildTabViewAt(i);
View v = (View) tabView.getParent();
tv = (TextView) v.findViewById(android.R.id.title);
Typeface faceBold = Typeface.createFromAsset(getAssets(),
"fonts/eau_sans_bold.otf");
tv.setTypeface(faceBold);
tv.setTextSize(12);
tv.setGravity(Gravity.CENTER);
tv.getLayoutParams().height = ViewGroup.LayoutParams.FILL_PARENT;
tv.getLayoutParams().width = ViewGroup.LayoutParams.WRAP_CONTENT;
tv.setGravity(Gravity.CENTER_VERTICAL);
mTabHost.getTabWidget().getChildAt(i)
.setBackgroundColor(Color.TRANSPARENT);
И вот мой логарифм.
12-06 19:22:38.764: E/AndroidRuntime(603): FATAL EXCEPTION: main
12-06 19:22:38.764: E/AndroidRuntime(603): java.lang.RuntimeException: Unable to start activity ComponentInfo{com./com..ProfileActivity}: java.lang.NullPointerException
12-06 19:22:38.764: E/AndroidRuntime(603): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
12-06 19:22:38.764: E/AndroidRuntime(603): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
12-06 19:22:38.764: E/AndroidRuntime(603): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
12-06 19:22:38.764: E/AndroidRuntime(603): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
12-06 19:22:38.764: E/AndroidRuntime(603): at android.os.Handler.dispatchMessage(Handler.java:99)
12-06 19:22:38.764: E/AndroidRuntime(603): at android.os.Looper.loop(Looper.java:123)
12-06 19:22:38.764: E/AndroidRuntime(603): at android.app.ActivityThread.main(ActivityThread.java:4627)
12-06 19:22:38.764: E/AndroidRuntime(603): at java.lang.reflect.Method.invokeNative(Native Method)
12-06 19:22:38.764: E/AndroidRuntime(603): at java.lang.reflect.Method.invoke(Method.java:521)
12-06 19:22:38.764: E/AndroidRuntime(603): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
12-06 19:22:38.764: E/AndroidRuntime(603): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
12-06 19:22:38.764: E/AndroidRuntime(603): at dalvik.system.NativeStart.main(Native Method)
12-06 19:22:38.764: E/AndroidRuntime(603): Caused by: java.lang.NullPointerException
12-06 19:22:38.764: E/AndroidRuntime(603): at com..ProfileActivity.onCreate(ProfileActivity.java:471)
12-06 19:22:38.764: E/AndroidRuntime(603): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-06 19:22:38.764: E/AndroidRuntime(603): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
Я не понимаю, почему я получаю это исключение.
Пожалуйста, дайте мне подсказку или ссылку.
какая линия 471? (это немедленно сообщит вам, что является нулевым) – njzk2
Отправьте свой код для onCreate() ... – Piyush
@ njzk2 Typeface faceBold = Typeface.createFromAsset (getAssets(), "fonts/eau_sans_bold.otf"); –