我想使用ViewStub和ButterKnife,这是我所做的:
public class ExampleFragment extends Fragment {
@InjectView ( R.id.stub )
ViewStub mStub;
/* A TextView in the ViewStub */
@InjectView ( R.id.text )
@Optional
TextView mText;
@Override
public View onCreateView ( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState ) {
View rootView = inflater.inflate ( R.layout.rootview, container, false );
ButterKnife.inject ( this, rootView );
mStub.setLayoutResource ( R.layout.stub_layout );
View inflated = mStub.inflate ();
ButterKnife.inject ( mStub, inflated );
mText.setText("test.");
return rootView;
}
}
日志显示:
mText
是一个空对象引用
我现在毫无头绪,欢迎任何建议。谢谢!
View inflated = mStub.inflate(); ButterKnife.inject(this, inflated);
- Nikola DespotoskiButterKnife.inject ( this, rootView );
,所以mStub
变成了null。现在我使用TextView mText = ( TextView ) inflated.findViewById ( R.id.text );
代替了:( 无论如何还是谢谢! - RockerFlower