我需要在屏幕上显示一个片段。我希望能够使用InjectView
注入(inject)我的UI元素。 InjectView在 Activity 上效果很好,因为 View (xml)是在onCreate
期间设置的,但是在片段上, View 是在onCreatView
设置的。
那么有没有办法在片段上使用InjectView?我知道我可以使用findViewbyId查找每个元素,但是我更喜欢使用InjectView
public class ProfileFragment extends RoboDialogFragment {
@InjectView(R.id.commentEditText)
protected EditText commentEditText;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// I get a null pointer exception here
commentEditText.setText("Some comment");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.profile , container, false);
// I get a null pointer exception here
commentEditText.setText("Some comment");
return view;
}
}
最佳答案
注入(inject)发生在onViewCreated
期间
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
commentEditText.setText("Some comment");
}