[英]open activity from another activity after some seconds
几秒钟后,我尝试从另一个活动中打开一个新活动,我使用了此代码,但是它不起作用(第一个活动运行了,但几秒钟后我出现了错误)
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设置为false来使用工具栏
问题不在于此代码。 根据您的例外情况,问题出在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" />
此链接将为您提供帮助。
在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" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.