2014-10-08 65 views
1

我有這段代碼,有人知道爲什麼我在手機上編譯時遇到錯誤嗎?更改Android TextView可見性時出現錯誤

public void onSectionAttached(int number) { 
      TextView textView = (TextView) findViewById(R.id.textView1); 
      textView.setVisibility(View.VISIBLE); 
      switch (number) { 
       case 1: 
        mTitle = getString(R.string.title_section1); 
        break; 
       case 2: 
        mTitle = getString(R.string.title_section2); 
        textView.setVisibility(View.GONE); 
        break; 
       case 3: 
        mTitle = getString(R.string.title_section3); 
        textView.setVisibility(View.GONE); 
        break; 
      } 
    } 

編輯:This是我的錯誤,它出錯的setVisibitily線。

+1

如何顯示實際的錯誤? – James 2014-10-08 19:50:08

+0

什麼是錯誤?發佈你的'getString'方法 – 2014-10-08 19:52:04

+0

如果這是導致錯誤的原因,那麼唯一可能的是佈局中沒有textView1,其他所有內容都是有效的,否則將不會編譯。再說一遍,只有當這是造成某種錯誤的原因。 – zgc7009 2014-10-08 19:53:35

回答

2

下次請將相關日誌附加到您的問題。這讓事情變得如此簡單得多..

反正錯誤的唯一原因,我可以在代碼中看到的是:

A. textView.setVisibility()從不是UI線程以外的線程調用。如果是這樣的話,做這樣的事情來解決你的問題:

myActivity.runOnUiThread(new Runnable() { 
     public void run() { 
      onSectionAttached(num); 
     } 
    }); 

B.您還沒有叫的setContentView()到你的佈局啓動此代碼之前。

C.您的佈局不包含名爲textView1的TextView元素。在這種情況下,findViewById()將返回null,並且textView.setVisibility()將導致NPE。