2016-09-25 27 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... 
    }