几秒钟后从另一个活动中打开活动

时间:2018-06-30 18:29:31

标签: java android android-studio

几秒钟后,我尝试从另一个活动中打开一个新活动,我使用了这段代码, 但它不起作用(第一次活动正在运行,但几秒钟后我出现了错误)

public class WelcomeActivity extends AppCompatActivity {

    private static int TIME_OUT = 4000;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_welcome);

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                Intent intent = new Intent(WelcomeActivity.this, MainActivity.class);
                startActivity(intent);
                //finish();
            }
        }, TIME_OUT);
    }
}

这是一个堆栈跟踪:

  

java.lang.RuntimeException:无法启动活动   ComponentInfo {________}:java.lang.IllegalStateException:此   活动已具有窗口装饰提供的操作栏。做   不请求Window.FEATURE_SUPPORT_ACTION_BAR并设置windowActionBar   设置主题为假,改用工具栏

2 个答案:

答案 0 :(得分:0)

问题不在于此代码。根据您的例外情况,问题出在MainActivity class中。我认为您正在尝试创建自定义操作栏。但是由于您当前的主题已经有一个操作栏,所以发生了错误。因此,您需要为该课程自定义主题。

styles.xml中创建一个新主题。

    <style name="Theme.FullScreen" parent="AppTheme.NoActionBar">
        <item name="android:windowNoTitle">false</item>
        <item name="android:windowFullscreen">false</item>
        <item name="android:windowActionBar">false</item>
    </style>

AndroidManifest.xml中,将视图主题更改为自定义主题。

    <activity
        android:name=".MainActivity "
        android:theme="@style/Theme.FullScreen" />

link 将为您提供帮助。

答案 1 :(得分:0)

制作 您的style.xml中的<item name="windowActionBar">false</item>

示例:

 <!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowAnimationStyle">@style/AnimationActivity</item>

</style>

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />