如果使用ButterKnife,不能setTextColor?

时间:2016-09-25 06:33:35

标签: android animation 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));
    }

返回Null Exception。 但是,当我尝试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文件要膨胀"。我的问题是:无论如何使用ButterKnife和setTextColor?

2 个答案:

答案 0 :(得分:0)

setContentView(R.layout.activity_main);使用后初始化ButterKnife ButterKnife.bind(this);请参阅official Javadoc

答案 1 :(得分:0)

请记住,您必须在onCreate()方法中调用ButterKnife.bind方法:

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