0
주 활동에서 레이아웃을 만들었으니 이제이 레이아웃을 기본 레이아웃에서 추가해야하는이 메소드를 호출하려고합니다. 그 행동이 TextInputLayout
과 같은 방식으로 작동하지 않습니다.android에서 프로그래밍 방식으로 textinputlayout에 autocompletetext를 추가하는 방법
내 코드를 확인하고 변경해야하는 점을 알려주십시오.
public static View getTypeAHeadView(Context context) {
RelativeLayout layout = new RelativeLayout(context);
try {
RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
layout.setLayoutParams(lp1);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(0, 5, 0, 0);
TextInputLayout textInputLayout = new TextInputLayout(context);
AutoCompleteTextView autoCompleteTextView = new AutoCompleteTextView(context);
autoCompleteTextView.setHeight(R.dimen.dim_40);
autoCompleteTextView.setWidth(LinearLayoutCompat.LayoutParams.MATCH_PARENT);
autoCompleteTextView.setTextSize(R.dimen.dim_20_sp);
autoCompleteTextView.setLines(1);
autoCompleteTextView.setDropDownHeight(R.dimen.dim_200);
autoCompleteTextView.setKeyListener(DigitsKeyListener.getInstance("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,"));
autoCompleteTextView.setPadding(10, 0, 0, 0);
autoCompleteTextView.setSingleLine(true);
autoCompleteTextView.setLayoutParams(lp);
textInputLayout.addView(autoCompleteTextView);
layout.addView(textInputLayout);
} catch (Exception e) {
e.printStackTrace();
}
/*parent.addView(text);
parent.addView(editText);*/
return layout;
}
나는 그렇게했다. 아직 제대로 예상대로 작동하지 않습니다. –
TextInputLayout.LayoutParams textInputPosition = new TextInputLayout.LayoutParams (LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); textInputLayout.addView (autoCompleteTextView, textInputPosition); –
프로그래밍 방식으로 또는 XML을 사용하여로드하는 동안 "디자인 라이브러리에서 Theme.AppCompat 테마 (또는 하위 클래스)를 사용해야합니다."라는 오류가 항상 발생합니다. –