2011-04-06 7 views
0

기본 설정의 ListPreference를 사용하여 내 응용 프로그램에서 내 텍스트의 textSize를 변경할 수있는 권한을 부여하고 싶습니다. 어떻게 만들 수 있습니까?내 테마에서 textSize를 어떻게 바꿀 수 있습니까?

문자열 변수를 사용해 보았지만 예외를 썼습니다 (예 : 예 : 25sp .. 거기에 뭐가 문제 야? 여기

는 예외입니다 :

04-07 09:02:20.475: ERROR/AndroidRuntime(287): android.view.InflateException: Binary XML file line #19: Error inflating class <unknown> 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.view.LayoutInflater.createView(LayoutInflater.java:513) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:618) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:621) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:621) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.view.LayoutInflater.inflate(LayoutInflater.java:407) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at de.mprengemann.hwr.timetabel.SubjectListView$SubjectAdapter.getView(SubjectListView.java:881) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.widget.AbsListView.obtainView(AbsListView.java:1315) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.widget.ListView.makeAndAddView(ListView.java:1727) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.widget.ListView.fillDown(ListView.java:652) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.widget.ListView.fillFromTop(ListView.java:709) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.widget.ListView.layoutChildren(ListView.java:1580) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.widget.AbsListView.onLayout(AbsListView.java:1147) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.view.View.layout(View.java:7035) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1125) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.widget.TableLayout.onLayout(TableLayout.java:437) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.view.View.layout(View.java:7035) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1125) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.widget.LinearLayout.onLayout(LinearLayout.java:1042) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.view.View.layout(View.java:7035) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.widget.FrameLayout.onLayout(FrameLayout.java:333) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.view.View.layout(View.java:7035) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.widget.FrameLayout.onLayout(FrameLayout.java:333) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.view.View.layout(View.java:7035) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.view.ViewRoot.performTraversals(ViewRoot.java:1045) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1727) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.os.Handler.dispatchMessage(Handler.java:99) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.os.Looper.loop(Looper.java:123) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at java.lang.reflect.Method.invokeNative(Native Method) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at java.lang.reflect.Method.invoke(Method.java:521) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at dalvik.system.NativeStart.main(Native Method) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287): Caused by: java.lang.reflect.InvocationTargetException 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.widget.TextView.<init>(TextView.java:321) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at java.lang.reflect.Constructor.constructNative(Native Method) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at java.lang.reflect.Constructor.newInstance(Constructor.java:446) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.view.LayoutInflater.createView(LayoutInflater.java:500) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  ... 38 more 
04-07 09:02:20.475: ERROR/AndroidRuntime(287): Caused by: java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x3 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:463) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  at android.widget.TextView.<init>(TextView.java:640) 
04-07 09:02:20.475: ERROR/AndroidRuntime(287):  ... 42 more 

고마워요 :)

+0

그럼 난 당신이 경우 추측 우리가 알 수있는 예외를 게시 할 것입니다. 예외를 읽는다면 스스로 대답을 알 수있을 것입니다. :) – MByD

+0

좋아요. 기본 답변을 편집하고 예외를 추가했습니다. –

+0

아무도 도와 줄 수 없습니까?! –

답변

0

난 당신이 ListPreference 여러 크기 옵션을 제공하려는 경우 내가 correcly 문제를 이해하지만, 잘 모르겠어요 , 항목을 배열로 추가해야합니다.

다음은 예입니다. 같은 배열을 사용할 수 있습니다, 물론

<?xml version="1.0" encoding="UTF-8"?> 
<resources> 
    <string-array name="font_sizes_displayed"> 
     <item>10 pt</item> 
     <item>12 pt</item> 
     <item>14 pt</item> 
    </string-array> 
    <string-array name="font_sizes"> 
     <item>10</item> 
     <item>12</item> 
     <item>14</item> 
    </string-array> 
</resources> 

: 당신은 고해상도 \ 값 배열 파일 "array.xml"를 만들 필요가

ListPreference fontSize = new ListPreference(this); 
fontSize.setEntries(R.array.font_sizes_displayed); 
fontSize.setEntryValues(R.array.font_sizes); 
fontSize.setValue("12"); 

: 세 번째 줄은 미리 선택된 값을 설정합니다 두번. 과 같이,

proxyType.setEntries(new String[]{"10", "12", "14"}); 
proxyType.setEntryValues(new String[]{"10", "12", "14"}); 

그리고 코드에서 다른 곳에 액세스하려면 키에 의한 환경 설정을 찾아 값을 얻을 : 당신은 또한 프로그래밍 방식을 쓸 수

ListPreference fontSizePref = (ListPreference) findPreference("preferenceKey"); 
fontSizePref.getValue(); 
관련 문제