更改Android TextView可见性时出现错误

问题描述:

我有这段代码,有人知道为什么我在手机上编译时遇到错误吗?更改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

下次请将相关日志附加到您的问题。这让事情变得如此简单得多..

反正错误的唯一原因,我可以在代码中看到的是:

A. textView.setVisibility()从不是UI线程以外的线程调用。如果是这样的话,做这样的事情来解决你的问题:

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

B.您还没有叫的setContentView()到你的布局启动此代码之前。

C.您的布局不包含名为textView1的TextView元素。在这种情况下,findViewById()将返回null,并且textView.setVisibility()将导致NPE。