2015-01-20 5 views
6

제 코드에서는 radioButtons, checkboxes 등과 같은 입력 요소를 프로그래밍 방식으로 내 레이아웃에 추가합니다. 문제는 해당 요소의 스타일이 xml을 통해 radioButton을 추가한다고 가정 할 때 기본 스타일이 아니라는 것입니다. (흰색 애플리케이션 백그라운드에서 실제로 흰색이고 거의 투명하게 보입니다. 마치 투명 한 것처럼 보입니다.) 또한 내가 추가하는 EditText 요소는 동일한 스타일을 가지며 입력 한 내용이 너무 크면 텍스트 줄을 조금 겹치게합니다. 그래서 저는 XML을 통해 정의 된 것처럼 보이는 것처럼 모든 요소에 기본 스타일을 부여하는 것으로 생각합니다.프로그래밍 방식으로 추가 된 스타일 설정하기

내 코드의 샘플은 다음과 같습니다

RadioGroup radioGroup = new RadioGroup(mContext); 
    radioGroup.setLayoutParams(fullWidthWrapHeight); 

    for (int i = 0; i < arg0.getOptions().size(); i++){ 
     RadioButton radioButton = new RadioButton(mContext, null); 
     radioButton.setPadding(padding16dp , padding8dp, padding16dp, padding8dp); 
     radioButton.setText(arg0.getOptions().get(i).getText()); 
     radioButton.setLayoutParams(wrapBoth); 
     radioButton.setGravity(Gravity.CENTER_HORIZONTAL); 

     radioButton.setTextAppearance(mContext, R.style.Default_Text); 
     radioGroup.addView(radioButton); 
    } 

내 목표 API의 LVL은 21 당신은 View 생성자의 인수로 styles.xml 내부에 정의 된 스타일을 전달할 수 있습니다

답변

12

(롤리팝). 그래서 예를 고려, 당신은 전화를 할 것입니다 :

RadioButton radioButton = new RadioButton(mContext, null, R.attr.radioButtonStyle); 

다음 추가 attrs.xml

<attr name="radioButtonStyle" format="reference" /> 

내부 및 styles.xml에서 응용 프로그램 테마 내에서 사용자 정의 속성을 추가

<item name="radioButtonStyle">@style/YourRadioButtonStyle</item> 

YourRadioButtonStyle 사용자 정의 라디오입니다 styles.xml에 정의 된 버튼 스타일

+0

기본 radioButton 스타일을 전달하는 것이 가능하거나 기본 스타일을 부모로 갖는 새 스타일을 만들어야합니까? – Cuddl3s

+0

당신은'@android : style/Widget.CompoundButton.RadioButton'을 부모로 갖는'YourRadioButtonStyle'을 정의해야하고 –

+0

이'com을 사용할 수 있어야하는 기본 radioButton 스타일을 전달하는 방식으로 일부 필드를 설정해야합니다. 'R.attr.radioButtonStyle' 대신에 android.internal.R.attr.radioButtonStyle'을 입력하십시오. –

관련 문제