几秒钟后,我尝试从另一个活动中打开一个新活动,我使用了这段代码, 但它不起作用(第一次活动正在运行,但几秒钟后我出现了错误)
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 设置主题为假,改用工具栏
答案 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" />