Android & RoboGuice - добавить взгляды на фрагмент? - PullRequest
15 голосов
/ 20 марта 2012

У меня есть фрагмент, который мне нужно отобразить на экране.Я хочу иметь возможность использовать InjectView для ввода своих элементов пользовательского интерфейса.InjectView отлично работает с операциями, потому что представление (xml) установлено во время onCreate, однако для фрагментов представление установлено на 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;
    }

}

1 Ответ

27 голосов
/ 20 марта 2012

Инъекция происходит в течение onViewCreated

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    commentEditText.setText("Some comment");
}
...