2012-08-29 23 views
2

我想对我的标签之一添加标题,并得到了Java异常: android.util.AndroidRuntimeException: You cannot combine custom titles with other title featuresTabHost不能与其他标题相结合自定义标题功能

相同的代码在Android 4.x版完美地工作,但是不工作在v2.2x

  • 有人可以帮我解决这个问题吗?

注:我也用ActionBarCompat包通过Google

提供娄我的Java代码:

public class MyNotepadActivity extends TabActivity { 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.GINGERBREAD){ 
      requestWindowFeature(Window.FEATURE_NO_TITLE); 
      this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     } 
     setContentView(R.layout.main); 
     Resources res = getResources(); 
     TabHost tabHost = getTabHost(); 
     TabHost.TabSpec spec; 

     Intent intent; 
     intent = new Intent().setClass(this.getApplicationContext(), 
     NotationActivity.class); 
     spec = tabHost.newTabSpec("Notation").setIndicator("detail Note").setContent(intent); 
     tabHost.addTab(spec); 
    } 
} 

堆栈跟踪:

08-29 08:39:39.329: W/dalvikvm(3063): threadid=1: thread exiting with uncaught exception (group=0x400259f8) 
08-29 08:39:39.349: E/AndroidRuntime(3063): FATAL EXCEPTION: main 
08-29 08:39:39.349: E/AndroidRuntime(3063): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.biblio/org.biblio.MyNotepadActivity}: java.lang.RuntimeException: Unable to start activity ComponentInfo{org.biblio/org.biblio.MyNotepadActivity}: android.util.AndroidRuntimeException: You cannot combine custom titles with other title features 
08-29 08:39:39.349: E/AndroidRuntime(3063): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2787) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2803) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at android.app.ActivityThread.access$2300(ActivityThread.java:135) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2136) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at android.os.Handler.dispatchMessage(Handler.java:99) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at android.os.Looper.loop(Looper.java:144) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at android.app.ActivityThread.main(ActivityThread.java:4937) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at java.lang.reflect.Method.invokeNative(Native Method) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at java.lang.reflect.Method.invoke(Method.java:521) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at dalvik.system.NativeStart.main(Native Method) 
08-29 08:39:39.349: E/AndroidRuntime(3063): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{org.biblio/org.biblio.NotationActivity}: android.util.AndroidRuntimeException: You cannot combine custom titles with other title features 
08-29 08:39:39.349: E/AndroidRuntime(3063): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2787) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at android.app.ActivityThread.startActivityNow(ActivityThread.java:2627) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:651) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at android.widget.TabHost.setCurrentTab(TabHost.java:323) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at android.widget.TabHost.addTab(TabHost.java:213) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at org.biblio.MyBookActivity.onCreate(MyBookActivity.java:70) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1069) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2751) 
08-29 08:39:39.349: E/AndroidRuntime(3063): ... 11 more 
08-29 08:39:39.349: E/AndroidRuntime(3063): Caused by: android.util.AndroidRuntimeException: You cannot combine custom titles with other title features 
08-29 08:39:39.349: E/AndroidRuntime(3063): at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:187) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at android.app.Activity.requestWindowFeature(Activity.java:2760) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at org.biblio.ui.actionbarcompat.ActionBarHelperBase.onCreate(ActionBarHelperBase.java:64) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at org.biblio.ui.actionbarcompat.ActionBarActivity.onCreate(ActionBarActivity.java:53) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at org.biblio.SearchSudocActivity.onCreate(SearchSudocActivity.java:90) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1069) 
08-29 08:39:39.349: E/AndroidRuntime(3063): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2751) 
08-29 08:39:39.349: E/AndroidRuntime(3063): ... 20 more 

回答

4

如果你有Window.FEATURE_CUSTOM_TITLE集,setFeatureInt()不能再次呼叫。对它的调用将归结为Window实现中的requestFeature()调用,该方法测试FEATURE_CUSTOM_TITLE,并在设置时引发Exception。

问题是:框架可能会以您的名义申请一个功能。我通过Android代码库搜索,发现只有一个这种情况下,generateLayout()方法,在我的情况下,它请求Window.FEATURE_ACTION_BAR,因为我有全息主题启用...讨厌的事情弄清楚,工作很简单,disabled the Holo theme

+1

我在自定义主题中继承了holo主题。然后,当我试图自定义标题栏时,该应用程序崩溃。刚刚从holo中删除了继承,它工作正常。 – zolio

相关问题