2016-09-25 46 views
0

我使用ButterKnife此代碼:使用ButterKnife時無法設置文本顏色?

public class MainActivity extends AppCompatActivity { 
    @BindView(R.id.mainAct_OKBtnTv) TextView mTextView; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     mTextView.setTextColor(ContextCompat.getColor(this,R.color.black)); 
    } 

這返回空例外。 然而,當我嘗試findViewById()

public class MainActivity extends AppCompatActivity { 
    private TextView mTextView; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     mTextView = (TextView) findViewById(R.id.mainAct_OKBtnTv); 
     mTextView.setTextColor(ContextCompat.getColor(this,R.color.black)); 
    } 

的setTextColor方法現在是成功的。 我想出了問題是我「試圖找到文本視圖,然後告訴android哪個xml文件膨脹」。我的問題是:是否有使用setTextColor的ButterKnife?

回答

0

初始化ButterKnife後setContentView(R.layout.activity_main);使用 ButterKnife.bind(this);official的Javadoc

+0

謝謝你。 OMG我忘了這個基本的約束(這個)。 – Rubit

0

請記住,你必須調用ButterKnife.bind方法在onCreate()方法:

@Override public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.simple_activity); 
    ButterKnife.bind(this); 
    // TODO Use fields... 
    }