扩展活动中的错误您需要使用Theme.AppCompat主题

时间:2015-10-18 10:22:02

标签: android

我正在设置动作栏的样式。我遇到此错误You need to use a Theme.AppCompat theme (or descendant) with this activity我知道我应该在我的主要活动中延长Activity但是我正在扩展AppCompatActivity,因为我正在使用此代码setSupportActionBar(toolbarTop);如果我删除了{{1}我将无法使用底部工具栏;

这是我的代码

AppCompatActivity

清单

public class MainActivity extends AppCompatActivity {
...
private void initToolbars() {

    Toolbar toolbarTop = (Toolbar) findViewById(R.id.toolbar_top);
    setSupportActionBar(toolbarTop);

    Toolbar toolbarBottom = (Toolbar) findViewById(R.id.drawer_layout);
    toolbarBottom.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {

            switch (item.getItemId()) {
                case R.id.action_settings:
                    // Single menu item is selected do something
                    // Ex: launching new activity/screen or show alert message
                    Toast.makeText(MainActivity.this, "Bookmark is Selected", Toast.LENGTH_SHORT).show();
                    return true;

                case R.id.menu_save:
                    Toast.makeText(MainActivity.this, "Save is Selected", Toast.LENGTH_SHORT).show();
                    return true;

                case R.id.menu_search:
                    Toast.makeText(MainActivity.this, "Search is Selected", Toast.LENGTH_SHORT).show();
                    return true;

                case R.id.menu_share:
                    Toast.makeText(MainActivity.this, "Share is Selected", Toast.LENGTH_SHORT).show();
                    return true;
            }

            return true;
        }
    });
    toolbarBottom.inflateMenu(R.menu.menu_main);

}

样式

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.je.www.i" >
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/CustomActionBarTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

2 个答案:

答案 0 :(得分:2)

您的Theme应该是

 <style name="CustomActionBarTheme" parent="Theme.AppCompat.Light.DarkActionBar">

将父级设为Theme.AppCompat.Light.DarkActionBar

答案 1 :(得分:1)

一样更改主题
<style name="CustomActionBarTheme" parent="Theme.AppCompat.Light.DarkActionBar">
     <item name="android:windowActionBar">false</item>
     <item name="windowActionBar">false</item>
</style>

通过这种方式,您不会请求ActionBar并且您应该能够使用工具栏,或者更好地使用Theme.AppCompat.Light.NoActionBar,因为您想要使用ToolBar并且您不需要ActionBar 1}}。使用Theme.AppCompat.Light.NoActionBar您无需为您的样式提供标记windowActionBar