我已经在android activity.java文件中以编程方式创建了edittexts。我想为edittexts添加textinputlayout。有没有办法做到这一点。我已将edittext包装在xml文件中。我希望以编程方式为edittexts创建相同的内容。
提前谢谢。(--helpers.nsh--)
!define CreateSymbolicLinkFolder "!insertmacro CreateSymbolicLinkFolder"
!ifdef CreateSymbolicLinkFolder_ ; <--- always false
Function CreateSymbolicLinkFolderFunc
Exch $0 ; _TARGET
Exch 1
Exch $1 ; _JUNCTION
IfFileExists "$0" 0 done
${GetParent} "$1" $R0
CreateDirectory "$R0"
System::Call "kernel32::CreateSymbolicLinkW(w `$1`, w `$0`, i 1) i .s"
done:
Pop $R0
Pop $1
Pop $0
FunctionEnd
!endif
!macro CreateSymbolicLinkFolder _JUNCTION _TARGET
!define CreateSymbolicLinkFolder_ ; <--- not work...
Push "${_JUNCTION}"
Push "${_TARGET}"
Call CreateSymbolicLinkFolderFunc
!macroend
(--sample.nsi--)
!include "helpers.nsh"
...
Function Clean
${CreateSymbolicLinkFolder} "$APPDATA\SOMEPATH" "$EXEDIR\Data"
FunctionEnd
Section "Main"
Call Clean
SectionEnd
答案 0 :(得分:1)
您可以像这样从XML文件中扩充布局:
在布局res中创建text_input_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.TextInputLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:inputType="phone"
android:hint="change hint"
android:id="@+id/text_input_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.TextInputLayout>
然后在你的代码中充气
TextInputLayout txtInputLayout = (TextInputLayout) LayoutInflater.from(getActivity()).inflate(R.layout.text_input_layout,null);
TextInputEditText txtInputEditText = (TextInputEditText) txtInputLayout.findViewById(R.id.text_input_edit_text);
mRoot.addView(txtInputLayout);
答案 1 :(得分:0)
尝试将TextInputLayout视为EditText字段的包装器,例如:
LinearLayout assessmentLayout = (LinearLayout) findViewById(R.id.assessmentsLayout);
LinearLayout.LayoutParams layoutParams =
new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
assert assessmentLayout != null;
TextView screenTitle = new TextView(this);
screenTitle.setLayoutParams(layoutParams);
screenTitle.setText(String.format("Assessment: %s", course.getName()));
assessmentLayout.addView(screenTitle);
TextInputLayout titleWrapper = new TextInputLayout(this);
titleWrapper.setLayoutParams(layoutParams);
titleWrapper.setHint("Assessment Title:");
assessmentLayout.addView(titleWrapper);
title = new EditText(this);
title.setLayoutParams(layoutParams);
title.setText(assessment.getTitle());
titleWrapper.addView(title);
TextInputLayout descriptionWrapper = new TextInputLayout(this);
descriptionWrapper.setLayoutParams(layoutParams);
descriptionWrapper.setHint("Description:");
assessmentLayout.addView(descriptionWrapper);
description = new EditText(this);
description.setLayoutParams(layoutParams);
description.setText(assessment.getDescription());
descriptionWrapper.addView(description);
将EditText视图添加到TextInputLayout包装器而不是直接添加到活动布局。