如何在菜单中使用我的项目?

时间:2018-03-13 08:54:47

标签: java android button menu action

我在操作栏中创建了一个菜单,但我不知道如何将其中的项目用作按钮。

这是我的菜单' xml'代码:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
    android:icon="@drawable/ic_add_circle_outline_black_24dp"
    android:title=""
    app:showAsAction="ifRoom">
        <menu>
            <item
            android:id="@+id/deleteMenu"
            android:title="Delete All" />
            <item
            android:id="@+id/exitMenu"
            android:title="Exit" />
        </menu>
    </item>

    <item
    android:id="@+id/addMovieOffline"
    android:title="Offline Mode" />
    <item
    android:id="@+id/addMovieOnline"
    android:title="Online Mode" />  
</menu>

这就是我在java中所拥有的:

public class MyMainActivity extends AppCompatActivity {

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

    // "Creating" my menu.
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        getMenuInflater().inflate(R.menu.main_menu, menu);
        return true;
    }
}

我如何使用我刚刚声明的项目? 例如&#34;退出&#34;选项

我认为这是最基本的事情,虽然我不知道如何将项目作为按钮来实现..或者它已经将自己定义为按钮?

我想得到一个例子和解释。

3 个答案:

答案 0 :(得分:0)

使用此

public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.exitMenu:
                //Your Logic
                return true;
        }
    }

答案 1 :(得分:0)

您正在使用项目内的菜单项,这不是在菜单中对项目进行分组的正确方法。

尝试使用此xml生成菜单

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<group android:id="@+id/my_menu" android:checkableBehavior="single">
    <item
       android:id="@+id/deleteMenu"
       android:title="Delete All" />
    <item
       android:id="@+id/exitMenu"
       android:title="Exit" />
</group >

<item
    android:id="@+id/addMovieOffline"
    android:title="Offline Mode" />
<item
    android:id="@+id/addMovieOnline"
    android:title="Online Mode" />  
</menu>

用于接收点击菜单的事件:

@override public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.item1:
                // action needed
                return true;
            case R.id.item2:
                // action needed
                return true;
        }
    }

答案 2 :(得分:0)

使用onOptionsItemSelected方法。

 public boolean onOptionsItemSelected(MenuItem item)
{
    switch (item.getItemId())
    {

        case R.id.exitMenu:

          //code here

           return true;

    }

    return(super.onOptionsItemSelected(item));
}

使用开关案例识别菜单项的ID。