当我从活动转移到新活动时,我遇到以下错误。
java.lang.IllegalStateException:您需要将Theme.AppCompat主题(或后代)与此活动一起使用
我在下一个活动中输入了工具栏,但没有在主要活动中输入。
我认为工具栏会导致错误。我不知道错误在哪里请告诉我缺少什么
activity.java
private void redirectMainActivity() {
startActivity(new Intent(this, ServiceActivity.class));
finish();
}
ServiceActivity.java
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
public class ServiceActivity extends AppCompatActivity {
Toolbar mToolbar;
String ClientTAG = "Client";
String OptionTAG = "Option";
private Context context = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_service);
mToolbar = (Toolbar) findViewById(R.id.toolBar);
mToolbar.setTitle("tool test");
mToolbar.setTitleTextColor(Color.WHITE);
setSupportActionBar(mToolbar);
}
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
我更改了styles.xml并将toolbar.xml包含到layout_service.xml
答案 0 :(得分:0)
如您所知,为了使用Toolbar
,您必须使用windowActionBar
设置为false的主题。否则,您将收到如下错误:
此活动已有窗口装饰提供的操作栏。请勿在主题中请求Window.FEATURE_SUPPORT_ACTION_BAR并将windowActionBar设置为false以使用工具栏。
由于您的第一个Activity没有工具栏但第二个Activity没有,我认为您对它们使用相同的主题。
但是,在您使用工具栏的活动中,您必须使用设置<item name="windowActionBar">false</item>
的主题
所以,我认为你可以这样做:
Android清单
将辅助活动设置为使用其他主题。
<application
...
android:theme="@style/AppThemePrimaryActivity">
<activity android:name=".PrimaryActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name=".SecondaryActivity"
android:theme="@style/AppThemeSecondaryActivity" />
</application>
<强> styles.xml 强>
为您的辅助活动创建一个<item name="windowActionBar">false</item>
的主题:
<resources>
<style name="AppThemePrimaryActivity" parent="Theme.AppCompat.Light.DarkActionBar">
...
</style>
<style name="AppThemeSecondaryActivity" parent="AppThemePrimaryActivity">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
</resources>
这样,您将辅助活动设置为始终使用没有默认ActionBar
的主题,您就可以设置Toolbar