4

I am new to Android programming and I am running into a simple XML issue. I am in the process of trying to make one of my empty activities into a fullscreen activity. I tried adding this line of code android:theme="@android:style/Theme.NoTitleBar.Fullscreen" into my android manifest file, which ended up making my app crash on start.

If this also helps, my java file for the affected activity extends the AppCompatActivity. I saw some other posts that mentioned that this would create issues but I have not been able to fix my problem.

Please help me fix this issue while still making the activity fullscreen. Any help is appreciated. Thanks!

XML

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/Theme.AppCompat.Light">
    <activity android:name=".MainActivity"
        android:label="Marks Calculator">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.APP_CALCULATOR" />
        </intent-filter>
    </activity>
    <activity android:name=".Home_Activity"
        android:label="Finite Time Manager">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.HOME" />
        </intent-filter>
    </activity>
    <activity
        android:name=".Welcome_Activity"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        </activity>
</application>

Error logcat

12-22 12:21:30.214 32475-32475/com.managergmail.time.finite.finitemanager02 E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.managergmail.time.finite.finitemanager02, PID: 32475
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.managergmail.time.finite.finitemanager02/com.managergmail.time.finite.finitemanager02.Welcome_Activity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2581)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2647)
    at android.app.ActivityThread.-wrap11(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1502)
    at android.os.Handler.dispatchMessage(Handler.java:111)
    at android.os.Looper.loop(Looper.java:207)
    at android.app.ActivityThread.main(ActivityThread.java:5763)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)
    Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
    at android.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:359)
    at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:328)
    at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:289)
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
    at com.managergmail.time.finite.finitemanager02.Welcome_Activity.onCreate(Welcome_Activity.java:17)
    at android.app.Activity.performCreate(Activity.java:6280)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1116)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2534)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2647)
    at android.app.ActivityThread.-wrap11(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1502)
    at android.os.Handler.dispatchMessage(Handler.java:111)
    at android.os.Looper.loop(Looper.java:207)
    at android.app.ActivityThread.main(ActivityThread.java:5763)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)
Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
Sean W
  • 65
  • 1
  • 2
  • 9

2 Answers2

9

Your Welcome_Activity probably extends AppCompatActivity so the theme should be appcompat theme.

In your styles.xml file put this:

<style name="AppTheme.FullScreen" parent="@style/Theme.AppCompat.Light">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

Now you can use this theme:

<activity
    android:name=".Welcome_Activity"
    android:theme="@style/AppTheme.FullScreen">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

This will apply fullscreen theme for this particular activity. If you want full screen for whole application you can just replace the application theme in manifest with this theme.

Nongthonbam Tonthoi
  • 12,667
  • 7
  • 37
  • 64
1

The theme you currently selected (in the welcome activity) isn´t a appcompat theme. This one should for example work: '

@style/Theme.AppCompat.Light.NoActionBar.FullScreen

Merthan Erdem
  • 5,598
  • 2
  • 22
  • 29
  • I tried that in my android manifest but it gave me the "cannot resolve symbol" error message. This is my current line of code ` ` – Sean W Dec 22 '17 at 17:39
  • 1
    You could start with typing @style/Theme.AppCompat and then look at the available options that come up after putting a dot there. – Merthan Erdem Dec 22 '17 at 17:41