Я хочу вставить 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);
}
}
@CommonsWare ничего не отображается. Это очень странно. Это происходит, когда я добавляю til.addView (et) ниже temp.addView (til)
Если происходит сбой, должна быть трассировка стека Java. Попробуйте отключить все фильтры в представлении LogCat. Без трассировки стека кому-либо будет сложно вам помочь.
Ничего не отображается (Run и Logcat). Тем не менее, знаете ли вы, как я накладываю эффект на TextInputLayout, чтобы, когда я касался его, появлялась подсказка, ИЛИ помещать TextInputEditText в TextInputLayout?
Удалите temp.addView(et);. Вы пытаетесь добавить et двум родителям, что у вас не получается. Вы хотите, чтобы et был потомком TextInputLayout, а не LinearLayout, поэтому просто сделайте til.addView(et);.
Теперь он работает @MikeM. ! Большое спасибо! Ансер этот пост, так что я дам вам лучший ответ для вас
Без проблем. Это круто. Я уже пометил это как дубликат. Однако, спасибо. Пожалуйста, посмотрите, как получить трассировку стека для ваших сбоев. Так будет намного проще. В этом отношении может помочь первый связанный дубликат. Рад, что у тебя получилось. Ваше здоровье!
Хорошо спасибо! И еще спасибо @CommonsWare!
«потому что приложение аварийно завершает работу» - используйте LogCat для проверки трассировки стека Java, связанной с вашим аварийным завершением.