Я хочу использовать ViewStub с ножом для масла, Это то, что я сделал:Как вводить 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 is a null object reference
Я понятие не имею сейчас, любой совет приветствуется. Благодаря!
Попробуйте 'View inflated = mStub.inflate(); ButterKnife.inject (this, inflated); ' –
@NikolaDespotoski Я пробовал, и эта инъекция заменила первую инъекцию' ButterKnife.inject (this, rootView); ', поэтому' mStub' становится нулевым. Теперь я использую 'TextView mText = (TextView) inflated.findViewById (R.id.text);' вместо :(Спасибо в любом случае! – RockerFlower
@RockerFlower, зачем вам нужен объект ViewStub после загрузки его компоновки? – Renascienza