2013-07-13 2 views
0

Я просто пытаюсь изменить имя моей вкладки, потому что я включил макет в свои вкладки, и я не могу изменить имя в XML или, по крайней мере, не могу найти.Android: изменение имени вкладки - nullPointerException

Это расположение (часть):

<FrameLayout 
android:id="@android:id/tabcontent" 
android:layout_width="match_parent" 
android:layout_height="360dp" 
android:layout_above="@+id/button_gamecfg_save" > 

<include 
android:layout_width="wrap_content" 
android:layout_height="match_parent" 
layout="@layout/gamecfg_times" /> 

<include 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
layout="@layout/gamecfg_others" /> 

<include 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
layout="@layout/gamecfg_roles" /> 

</FrameLayout> 

И мой код:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.gamecfg_tabs); 
    TabHost th=((TabHost)findViewById(android.R.id.tabhost)); 
    ((TextView)th.getTabWidget().getChildAt(0).findViewById(android.R.id.title)).setText("New"); //<-------------------- 
} 

В моем коде у меня есть NullPointerException на отмеченной линии. Я могу получить tabwidget легко, но как только я попытаюсь getChildAt, у меня есть исключение, но я не понимаю, почему.

Вы можете мне помочь?

+0

try 'setIndicator (" Data ")' вместо 'setText (" New ")' –

+0

Поместите контрольную точку и проверьте, что вы получаете за «th». –

+0

Я получаю ошибку в GetChildAt, и это потому, что у tabwidget нет ребенка, но это не возможно? У меня добавлено 3 макета, SDK показывает мне 3 вкладки! Как это происходит? – rXp

ответ

0

Вы пытались вызвать метод th.setup() перед getChildAt (0)?

В документации указано: «Настройка вызова() перед добавлением вкладок при загрузке TabHost с помощью findViewById()».

Смежные вопросы