2017-04-07 32 views
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; 
} 

답변

0

나는 완전히 확실하지 않다 그러나 아마 프로그래밍 방식으로 추가하는 TextInputLayout에 대한 레이아웃 매개 변수를 정의하려고합니다.

+0

나는 그렇게했다. 아직 제대로 예상대로 작동하지 않습니다. –

+0

TextInputLayout.LayoutParams textInputPosition = new TextInputLayout.LayoutParams (LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); textInputLayout.addView (autoCompleteTextView, textInputPosition); –

+0

프로그래밍 방식으로 또는 XML을 사용하여로드하는 동안 "디자인 라이브러리에서 Theme.AppCompat 테마 (또는 하위 클래스)를 사용해야합니다."라는 오류가 항상 발생합니다. –