2012-11-26 77 views
2

對於以下代碼,我在createTabContent上獲得java.lang.NullPointerException。有兩個tabpecs。當我調用並設置標籤時,第一次改變標籤就沒問題。但是,當我在第二個選項卡上再次呼叫時,它會觸發行的空指針例外:NoStudentText.setVisibility(View.VISIBLE);setcontent的textview中的空指針異常

如果沒有學生列表的數據,我將顯示No Student Text。它顯示第一次通話的文字。但是如果我再次打電話給該選項卡,出現錯誤。

tspecStudent.setContent(new TabContentFactory() { 
      public View createTabContent(String arg0) { 
       if(listStudent != null && listStudent .size() > 0) { 
        //show the student list 
       } else { 
        TextView noStudentText = (TextView)findViewById(R.id.NoStudentText); 
        noStudentText.setVisibility(View.VISIBLE); 
        return noStudentText; 
       } 

      } 
     }); 

我包括另一個xml到主佈局。

main.xml中

<TabHost 
     android:id="@+id/tabhostMain" 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1" > 
.... 
<include layout="@layout/tab_student" /> 

</TabHost> 

tab_student.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/tabcontent" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 

<ListView 
     android:id="@+id/StudentList" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:drawSelectorOnTop="false" /> 

<TextView 
     android:id="@+id/NoStudentText" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="No Student" 
     android:visibility="gone" /> 

</FrameLayout> 
+0

您的選項卡是否具有相同的xml佈局? – 2012-11-26 04:11:38

回答

2

有些時候,應用COND銀行足球比賽它可能不能夠根據您的需要這樣的初始化等等, 使這個變量作爲全球like--

TextView _noStudentText; 

在onCreate方法::

_noStudentText = (TextView)findViewById(R.id.NoStudentText); 

現在初始化改變它的知名度 -

_noStudentText.setVisibility(View.VISIBLE); 
+0

謝謝綠巨人。它的工作原理:D – kitokid

+0

+1,判斷力很好。 –

+0

好綠巨人,繼續保持。 –

0

也許你忘記添加setContentView(R.layout.your_layout);:因爲你的

super.onCreate(savedInstanceState); 
setContentView(R.layout.your_layout);