使用“扩展活动”时,Android标题或Android操作栏丢失

使用“扩展活动”时,Android标题或Android操作栏丢失,android,android-activity,Android,Android Activity,有人知道为什么我扩展活动时我的操作栏/android标题栏丢失了吗?所有这些都可以正常工作,并且无论何时使用extend activity,都会在活动上显示操作栏/标题活动。我已经使用extend activity很长时间了,但是今天当我点击CreateNewProject创建一个新的android活动和extends活动时,操作栏/android标题就不见了。我已经找了很长时间了,仍然找不到导致这种情况的原因。如何解决这个问题 public class MainActivity extends

有人知道为什么我扩展活动时我的操作栏/android标题栏丢失了吗?所有这些都可以正常工作,并且无论何时使用extend activity,都会在活动上显示操作栏/标题活动。我已经使用extend activity很长时间了,但是今天当我点击CreateNewProject创建一个新的android活动和extends活动时,操作栏/android标题就不见了。我已经找了很长时间了,仍然找不到导致这种情况的原因。如何解决这个问题

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

感谢Shvet已经指出的最快的修复方法是使用AppcompatActivity作为基类,因为这个类默认添加了新的工具栏


之所以看不到ActionBar,是因为默认情况下它是以compat样式隐藏的。因此,您需要在清单中将样式更改为不同的样式。但是我建议你使用compat库。这使得兼容性更加容易。

简单地将扩展活动更改为ActionBarActivity,并使用ActionBar类,您将从活动中获得操作栏。

自从引入工具栏以来,ActionBar一直被弃用。工具栏可以看作是任何操作栏的“超集”。因此,“旧”操作栏现在是工具栏的一个示例。如果您想要类似的功能,但没有弃用警告,请执行以下操作:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar != null) {
    toolbar.setTitle(R.string.app_name);
    setSupportActionBar(toolbar);
}
您需要在“layout.xml”文件中定义工具栏,如下所示:

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:popupTheme="@style/ThemeOverlay.AppCompat.Light">
</android.support.v7.widget.Toolbar>

有了这个新功能,你可以创建自己的自定义ActionBar,让Android来完成繁重的工作。只需创建从工具栏扩展的自定义视图,即可显示ActionBar。由于ActionBarActivity现在已被弃用,您必须使用AppcompatActivity扩展类。Activity用于没有标题栏和ActionBar的简单活动。你必须为ActionBar扩展ActionBarActivity,但所有这一切都是因为我一直在扩展Activity而不是ActionBarActivity,而且它工作得很好,直到现在,这个例子也只扩展了Activity,actionbar/标题显示在Activity中既然ActionBarActivity被折旧了,我应该用什么来代替呢?因为我今天才遇到这些,而我一直在使用活动。我可以用任何方式显示actionbar或标题吗?您好,但我还是像往常一样使用以下内容?我没有改变任何事情。是不是因为现在android的东西因为新版本的更新等而改变了?如果你创建了一个新的应用程序,兼容性框架会自动添加。如果单击@style/AppTheme,您将看到此样式是从兼容样式扩展而来的,兼容样式具有规则useActionBarfalse@AuroraBlaze由于google将不断使用新功能更改样式,我们也必须更改编码。@顺便问一下,当google不断更改样式时,我们的SDK/eclipse ADT会自动更新吗?或者我们必须手动更新以实现新功能?因为我不记得我做过任何更新时,我似乎仍然不明白是什么导致了这种情况。当谷歌更新时,我们可以在sdk中看到新的更新,我们必须下载它。嗨,谢谢你的回复,如果可以的话,我不想使用Extends ActionBarActivity,因为它已被弃用。嗨,谢谢你的建议。我很感激。顺便说一句,我会试试的。使用此方法还意味着每次创建新活动时都必须在工具栏中添加,对吗?