Ich bin Anwendung für Registerkarte erstellen.Aktivitätsdialog mit Registerkarte
- Auf Schaltfläche anklickt Ich versuche Aktivität zu zeigen (zB A) mit Thema
@android:style/Theme.Dialog
- Innen Aktivität A ich ActionBar bin Erstellen und Hinzufügen von 4 Registerkarten.
- Auf einen Klick auf Registerkarte Ich möchte Fragment ändern.
Alles funktioniert gut, bis ich nicht Thema der Anwendung am @android:style/Theme.Dialog
Nach Thema Anwendung ich Ausnahme bin immer:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ebuilder/com.ebuilder.views.MyTabActivity}: java.lang.NullPointerException
an folgenden Zeile:
actionBar.addTab(actionBar.newTab().setCustomView(R.layout.tab_home).
setTabListener(homeListener), 0);
Ich habe zwei Fragen:
1. Was ist falsch, wenn ich sie anwende? Der Dialog?
2. Ist meine Vorgehensweise richtig?
Lassen Sie mich wissen, wenn jemand einen anderen Ansatz kennt.
Edit1: * Manifest-Datei *
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.vivek"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:targetSdkVersion="14"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".FragmentInsideFragmentTestActivity"
android:label="@string/app_name"
android:theme="@style/Theme.CustomDialog" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
res/Werte/style.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.CustomDialog" parent="android:style/Theme.Dialog">
<item name="android:windowNoTitle">false</item>
<item name="android:windowActionBar">true</item>
</style>
</resources>
EDIT2
05-03 21:42:10.580: D/AndroidRuntime(533): Shutting down VM
05-03 21:42:10.580: W/dalvikvm(533): threadid=1: thread exiting with uncaught exception (group=0x40014760)
05-03 21:42:10.600: E/AndroidRuntime(533): FATAL EXCEPTION: main
05-03 21:42:10.600: E/AndroidRuntime(533): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.vivek/com.vivek.FragmentInsideFragmentTestActivity}: java.lang.IllegalStateException: ActionBarImpl can only be used with a compatible window decor layout
05-03 21:42:10.600: E/AndroidRuntime(533): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1748)
05-03 21:42:10.600: E/AndroidRuntime(533): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1764)
05-03 21:42:10.600: E/AndroidRuntime(533): at android.app.ActivityThread.access$1500(ActivityThread.java:122)
05-03 21:42:10.600: E/AndroidRuntime(533): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1002)
05-03 21:42:10.600: E/AndroidRuntime(533): at android.os.Handler.dispatchMessage(Handler.java:99)
05-03 21:42:10.600: E/AndroidRuntime(533): at android.os.Looper.loop(Looper.java:132)
05-03 21:42:10.600: E/AndroidRuntime(533): at android.app.ActivityThread.main(ActivityThread.java:4025)
05-03 21:42:10.600: E/AndroidRuntime(533): at java.lang.reflect.Method.invokeNative(Native Method)
05-03 21:42:10.600: E/AndroidRuntime(533): at java.lang.reflect.Method.invoke(Method.java:491)
05-03 21:42:10.600: E/AndroidRuntime(533): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
05-03 21:42:10.600: E/AndroidRuntime(533): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
05-03 21:42:10.600: E/AndroidRuntime(533): at dalvik.system.NativeStart.main(Native Method)
05-03 21:42:10.600: E/AndroidRuntime(533): Caused by: java.lang.IllegalStateException: ActionBarImpl can only be used with a compatible window decor layout
05-03 21:42:10.600: E/AndroidRuntime(533): at com.android.internal.app.ActionBarImpl.init(ActionBarImpl.java:214)
05-03 21:42:10.600: E/AndroidRuntime(533): at com.android.internal.app.ActionBarImpl.<init>(ActionBarImpl.java:192)
05-03 21:42:10.600: E/AndroidRuntime(533): at android.app.Activity.initActionBar(Activity.java:1767)
05-03 21:42:10.600: E/AndroidRuntime(533): at android.app.Activity.setContentView(Activity.java:1781)
05-03 21:42:10.600: E/AndroidRuntime(533): at com.vivek.FragmentInsideFragmentTestActivity.onCreate(FragmentInsideFragmentTestActivity.java:47)
05-03 21:42:10.600: E/AndroidRuntime(533): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
05-03 21:42:10.600: E/AndroidRuntime(533): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1712)
05-03 21:42:10.600: E/AndroidRuntime(533): ... 11 more
Ich würde empfehlen, die Registerkarte in Bits zu erstellen, anstatt es in einem großen Stück zu tun. Dann können Sie genau bestimmen, was nullpointer gibt. Nullpointer sollte ziemlich einfach zu lösen sein. – Warpzit
nein eigentlich actionBar selbst ist null wenn ich theme 'Theme.Dialog' anwende, daher die Ausnahme. – Vivek
Meine Vermutung (es ist eine Vermutung) ist, dass das Dialog-Thema keinen Titel hat und da die Aktionsleiste tief unten eine Titelleiste ist, bedeutet dies, dass es keine Aktionsleiste gibt, daher null. Ist es möglich, ein anderes Thema zu verwenden? – Warpzit