2016-07-15 1 views
1

사용자 정의 View 생성자에서 AttributeSet을 매개 변수로 전달해야합니다.AppWidget for android의 사용자 정의보기 생성자에서 AttributeSet을 매개 변수로 전달

<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="DonutChart"> <attr name="radiusDonut" format="dimension"/> <attr name="donutTextSize" format="dimension"/> </declare-styleable> </resources>

내가 내 AppWidget에서 리모트 뷰 내 사용자 정의보기를 추가 것을 위해, 코드로이 작업을 수행 할 필요가 : 여기 전달해야하는 속성입니다. 아무도 내가 어떻게이 문제를 해결할 수 있을지 전혀 모른다.

답변

0

XmlPullParser을 사용하여 XML 리소스에서 속성을 가져온 다음 res_id을 위의 파일 ID로 바꾸면 다음과 같이 전달할 수 있습니다.

XmlResourceParser resourceParser = activity.getResources().getXml(R.xml.res_id); 
AttributeSet attrs = Xml.asAttributeSet(resourceParser); 

CustomView view = new CustomView(activity, attrs); 
+0

declare-styleable 태그를 사용하여 attrs.xml 파일을 만들었지 만 getXml 기능이 스타일 가능으로 작동하지 않습니다. – vikifor

+0

그래서, 내가 찾은 해결책은 아마도 좋지 않다는 것은 코드에서 속성을 설정하고 생성자에서 null 매개 변수를 사용하여 뷰를 만드는 것입니다. 내가 AttributeSet을 생성자에 전달하지 않으면 오류가 발생합니다 : 위젯로드 문제가 발생했습니다. – vikifor

+0

죄송합니다. declare-styleable을 사용하면 작동하지 않을 것입니다. 데칼 스타일링이 실제로 필요한 것인가? 만약 당신이 * 코드를 가지고 * 할 수 있다면, 말한 것처럼 코드를 통해 속성을 설정하는 것이 좋습니다. 컨텍스트/액티비티를 생성자에 전달하십시오. 즉 두 번째 인수가 전혀 없습니다. CustomView보기 = 새로운 CustomView (활동). –