4
我想使用ButterKnife一個ViewStub,這是我做了什麼:如何使用ButterKnife注入ViewStub?
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 is a null object reference
我不知道現在,任何意見是受歡迎的。謝謝!
嘗試'查看inflated = mStub.inflate(); ButterKnife.inject(this,inflated);' –
@NikolaDespotoski我試過了,這個注入代替了第一次注入'ButterKnife.inject(this,rootView);',所以'mStub'變爲null。現在我用'TextView mText =(TextView)inflated.findViewById(R.id.text);'代替:(謝謝! – RockerFlower
@RockerFlower,爲什麼在加載它的佈局後需要ViewStub對象呢? – Renascienza