如何在扩展 ListActivity 的 Activity 中使用 onCreateOptionsMenu()

Meh*_*met 5 java xml android android-studio

我的 android 应用项目有问题。

我有一个 MainActivity 如下:

public class MainActivity extends ListActivity {

    private NotesDataSource datasource;
    List<NoteItem> notesList;



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

        datasource = new NotesDataSource(this);

        refreshDisplay();
    }

    private void refreshDisplay() {
        notesList = datasource.findAll();
        ArrayAdapter<NoteItem> adapter = new ArrayAdapter<NoteItem>(this, R.layout.list_item_layout, notesList);
        setListAdapter(adapter);
    }


    @Override
    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;
    }


}
Run Code Online (Sandbox Code Playgroud)

而且我还有一个 menu_main.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">

    <item android:id="@+id/action_create"
        android:title="@string/action_create"
        android:orderInCategory="100"
        app:showAsAction="always|withText"
        android:icon="@drawable/create_note"/>
</menu>
Run Code Online (Sandbox Code Playgroud)

在这一点上,问题开始了。我已将我的超类从ActionBarActivity更改为ListActivity然后,当我在我的设备上运行我的应用程序时,我看不到我的创建图标(以及包含应用程序名称的顶部菜单)。怎么了?和想法?

(顺便说一句,我使用的是 Android Studio Ide)

Com*_*are 3

您的主题可能仍然基于Theme.AppCompat. 如果你想使用Theme.AppCompat,你必须继承ActionBarActivity。想用ListActivity就不能用Theme.AppCompat

请注意,您不需要使用ListActivitya ListViewin 活动。这是一个示例项目,Theme.AppCompat演示了anActionBarActivity和 a的用法ListView这是另一个示例项目,与前一个示例项目相同,只是我将自定义色调应用于操作栏。