我将旧的Android(4.4 Kitkat)项目从Eclipse迁移到了Android Studio。
当我运行该应用程序时,我再也没有ActionBar了!

这是我的主要Activity类文件:

public class Main extends Activity {
    ...

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    ...

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.options, menu);

        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        Intent intent;

        switch (item.getItemId()) {

            case R.id.Open:
                intent = new Intent(this, Open.class);
                startActivity(intent);
                return true;

        case R.id.Email;
                intent = new Intent(this, Email.class);
                startActivity(intent);
                return true;

            case R.id.Compartir:
                intent = new Intent(this, Compartir.class);
                startActivity(intent);
                return true;

            case R.id.About:
                intent = new Intent(this, About.class);
                startActivity(intent);
                return true;

            default:
                return super.onOptionsItemSelected(item);
        }
    }
}


这是我的styles.xml文件:

<resources>
        <style name="AppBaseTheme" parent="Theme.AppCompat.Light"></style>

    <style name="AppTheme" parent="AppBaseTheme">
            <item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
        </style>

    <style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.Light.ActionButton.Overflow">
        <item name="android:src">@drawable/ic_action_expand</item>
        <item name="android:background">?android:attr/actionBarItemBackground</item>
        <item name="android:contentDescription">"Lala"</item>
    </style>
</resources>


我从清单文件中调用的:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >


android - 如何使旧的自定义ActionBar出现在新的SDK上?-LMLPHP

在项目中,我有options.xml,如您所见,它创建了操作栏的内容:1个按钮+选项按钮,这是一个包含3个按钮的下拉菜单。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/Open"
        android:title="@string/option_open"
        android:icon="@drawable/ic_action_open"
        android:showAsAction="ifRoom" />

    <item android:id="@+id/Email"
        android:title="@string/option_email"
        android:icon="@drawable/ic_action_person"
        android:showAsAction="never" />

    <item android:id="@+id/Compartir"
        android:title="@string/option_compartir"
        android:showAsAction="never" />

    <item android:id="@+id/About"
        android:title="@string/option_about"
        android:showAsAction="never" />
</menu>


无论如何,如果我构建该应用程序,则手机上不会显示ActionBar。我使用Eclipse ADT构建应用程序时就拥有了它。我认为区别是我以前使用的SDK旧版本。然后,如何使ActionBar以该自定义主题再次出现?

最佳答案

我认为您必须回到Holo主题:

<style name="AppBaseTheme" parent="android:Theme.Holo.Light">

10-07 19:17
查看更多