Android - вставьте TextInputEditText в TextInputLayout программно

Я хочу вставить TextInputEditText в TextInputLayout программно, но я не могу этого сделать, потому что сейчас я не знаю, как это сделать, и отображается только мой EditText. OBS: метод может добавить 3 раза EditText, но теперь я хочу вставить TextInputLayout вместо EditText

private void configLayout(View view, LinearLayout ll) {
    String[] hint = new String[]{"Name", "E-mail", “Phone”};
    for (int i = 0; i < 3; i++) {

    LinearLayout temp = new LinearLayout(view.getContext());
    temp.setOrientation(LinearLayout.VERTICAL);
    temp.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
            LinearLayout.LayoutParams.WRAP_CONTENT));

    TextInputEditText et = new TextInputEditText(view.getContext());
    et.setHint(hint[i]);
    LinearLayout.LayoutParams llpNome = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    llpNome.setMargins(0, 16, 0, 0);
    et.setLayoutParams(llpNome);
    temp.addView(et);

    TextInputLayout til = new TextInputLayout(view.getContext(), null, R.style.stl_til);
    LinearLayout.LayoutParams llpTil = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
    llpTil.setMargins(0, 16, 0, 0);
    til.setLayoutParams(llpTil);
    til.setHint(hint[i]);
    temp.addView(til);

    ll.addView(temp);
}

}

«потому что приложение аварийно завершает работу» - используйте LogCat для проверки трассировки стека Java, связанной с вашим аварийным завершением.

CommonsWare 21.04.2018 02:45

@CommonsWare ничего не отображается. Это очень странно. Это происходит, когда я добавляю til.addView (et) ниже temp.addView (til)

Wallace Blend 21.04.2018 02:54

Если происходит сбой, должна быть трассировка стека Java. Попробуйте отключить все фильтры в представлении LogCat. Без трассировки стека кому-либо будет сложно вам помочь.

CommonsWare 21.04.2018 02:59

Ничего не отображается (Run и Logcat). Тем не менее, знаете ли вы, как я накладываю эффект на TextInputLayout, чтобы, когда я касался его, появлялась подсказка, ИЛИ помещать TextInputEditText в TextInputLayout?

Wallace Blend 21.04.2018 03:31

Удалите temp.addView(et);. Вы пытаетесь добавить et двум родителям, что у вас не получается. Вы хотите, чтобы et был потомком TextInputLayout, а не LinearLayout, поэтому просто сделайте til.addView(et);.

Mike M. 21.04.2018 03:31

Теперь он работает @MikeM. ! Большое спасибо! Ансер этот пост, так что я дам вам лучший ответ для вас

Wallace Blend 21.04.2018 03:35

Без проблем. Это круто. Я уже пометил это как дубликат. Однако, спасибо. Пожалуйста, посмотрите, как получить трассировку стека для ваших сбоев. Так будет намного проще. В этом отношении может помочь первый связанный дубликат. Рад, что у тебя получилось. Ваше здоровье!

Mike M. 21.04.2018 03:37

Хорошо спасибо! И еще спасибо @CommonsWare!

Wallace Blend 21.04.2018 03:42
0
8
483
0

Другие вопросы по теме