2013-01-09 180 views
0

我更改了我的应用程序,以便用户可以对整个应用程序使用2种不同的样式。我已经更新了我创建的自定义选项卡,以便它们链接到一个Style(依次选择的样式)链接到可绘制的Selector xml(即选择或未选定的选项)。将样式添加到自定义选项卡

运行这给了我下面的错误

01-09 10:46:28.701: E/AndroidRuntime(375): FATAL EXCEPTION: main 
01-09 10:46:28.701: E/AndroidRuntime(375): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myappname/com.myappname.RoundSelect}: android.view.InflateException: Binary XML file line #11: Error inflating class <unknown> 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.os.Handler.dispatchMessage(Handler.java:99) 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.os.Looper.loop(Looper.java:123) 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.app.ActivityThread.main(ActivityThread.java:3683) 
01-09 10:46:28.701: E/AndroidRuntime(375): at java.lang.reflect.Method.invokeNative(Native Method) 
01-09 10:46:28.701: E/AndroidRuntime(375): at java.lang.reflect.Method.invoke(Method.java:507) 
01-09 10:46:28.701: E/AndroidRuntime(375): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
01-09 10:46:28.701: E/AndroidRuntime(375): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
01-09 10:46:28.701: E/AndroidRuntime(375): at dalvik.system.NativeStart.main(Native Method) 
01-09 10:46:28.701: E/AndroidRuntime(375): Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class <unknown> 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.view.LayoutInflater.createView(LayoutInflater.java:518) 
01-09 10:46:28.701: E/AndroidRuntime(375): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568) 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.view.LayoutInflater.rInflate(LayoutInflater.java:623) 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.view.LayoutInflater.inflate(LayoutInflater.java:408) 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
01-09 10:46:28.701: E/AndroidRuntime(375): at com.myappname.RoundSelect.createTabView(RoundSelect.java:234) 
01-09 10:46:28.701: E/AndroidRuntime(375): at com.myappname.RoundSelect.setupTab(RoundSelect.java:223) 
01-09 10:46:28.701: E/AndroidRuntime(375): at com.myappname.RoundSelect.setupCustomTabs(RoundSelect.java:215) 
01-09 10:46:28.701: E/AndroidRuntime(375): at com.myappname.RoundSelect.onCreate(RoundSelect.java:90) 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
01-09 10:46:28.701: E/AndroidRuntime(375): ... 11 more 
01-09 10:46:28.701: E/AndroidRuntime(375): Caused by: java.lang.reflect.InvocationTargetException 
01-09 10:46:28.701: E/AndroidRuntime(375): at java.lang.reflect.Constructor.constructNative(Native Method) 
01-09 10:46:28.701: E/AndroidRuntime(375): at java.lang.reflect.Constructor.newInstance(Constructor.java:415) 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.view.LayoutInflater.createView(LayoutInflater.java:505) 
01-09 10:46:28.701: E/AndroidRuntime(375): ... 23 more 
01-09 10:46:28.701: E/AndroidRuntime(375): Caused by: android.content.res.Resources$NotFoundException: File res/drawable/custom_tab_text_selector_black.xml from drawable resource ID #0x7f020023 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.content.res.Resources.loadDrawable(Resources.java:1697) 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.content.res.TypedArray.getDrawable(TypedArray.java:601) 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.view.View.<init>(View.java:1951) 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.widget.TextView.<init>(TextView.java:344) 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.widget.TextView.<init>(TextView.java:337) 
01-09 10:46:28.701: E/AndroidRuntime(375): ... 26 more 
01-09 10:46:28.701: E/AndroidRuntime(375): Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #7: <item> tag requires a 'drawable' attribute or child tag defining a drawable 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:167) 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:787) 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.graphics.drawable.Drawable.createFromXml(Drawable.java:728) 
01-09 10:46:28.701: E/AndroidRuntime(375): at android.content.res.Resources.loadDrawable(Resources.java:1694) 
01-09 10:46:28.701: E/AndroidRuntime(375): ... 30 more 

代码正在调用该

private static View createTabView(Context pContext, String pTabTitleText) { 

     View view = LayoutInflater.from(pContext).inflate(R.layout.custom_tabs_background, null); 

     TextView tv = (TextView) view.findViewById(R.id.customTabsText); 

     tv.setText(pTabTitleText); 

     return view; 

    } 

其余的Custombackground

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tabsLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    style="?custom_tab_background_selector"> 

    <TextView 
     android:id="@+id/customTabsText" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     style="?custom_tab_text_selector"> 
    </TextView> 

</LinearLayout> 

方法仅仅是一个XML的主题,分选择器XML,然后指向一些可拖拽的XML文件。这里是选择器XML

<?xml version="1.0" encoding="utf-8"?> 
<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- Active tab --> 
    <item 
     android:state_selected="true" 
     android:state_focused="false" 
     android:state_pressed="false" 
     android:drawable="@drawable/custom_tab_background_selected_black" /> 
    <!-- Inactive tab --> 
    <item 
     android:state_selected="false" 
     android:state_focused="false" 
     android:state_pressed="false" 
     android:drawable="@drawable/custom_tab_background_unselected_black" /> 
    <!-- Pressed tab --> 
    <item 
     android:state_pressed="true" 
     android:drawable="@android:color/transparent" /> 
    <!-- Selected tab (using d-pad) --> 
    <item 
     android:state_focused="true" 
     android:state_selected="true" 
     android:state_pressed="false" 
     android:drawable="@android:color/transparent" /> 
</selector> 

任何想法,为什么我得到这个错误将是伟大的。谢谢你的时间

+0

删除了样式部分,并直接指向选择器xml,仍然收到错误 –

+0

在基地http://joshclemm.com/blog/?p=136 –

回答

0

它似乎我跟踪它。

我用的android标签的背景:背景= ....但也使用相同文本的颜色,它应该是安卓textColour = ....

所有现在工作。对不起

相关问题