当有人点击硬件按钮菜单设置时,如何进行新活动

时间:2013-05-05 11:30:46

标签: java android menu onclick hardware

我有一个项目,如果有人点击硬件按钮菜单,会出现三个不同的选项:

<item
    android:id="@+id/action_settings"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/action_settings"/>

<item
    android:id="@+id/action_information"
    android:title="@string/action_information"/>

 <item
    android:id="@+id/action_impressum"
    android:title="@string/action_impressum"/>

我创建了一个设置,信息和impressum活动。现在应该可以在有人点击相应的菜单子项时显示它们。但我没有胶水怎么做。我知道,如何点击按钮并显示新活动:

View button = findViewById(R.id.button_pong);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Intent startActivity = new Intent(v.getContext(),
                        PongActivity.class);
                startActivity(startActivity);
            }
        });

与硬件按钮类似吗?

2 个答案:

答案 0 :(得分:4)

在您的活动中,覆盖onCreateOptionsMenu()。例如:

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    MenuInflater mnuInflater = getSupportMenuInflater();
    mnuInflater.inflate(R.menu.your_menu, menu); // your_menu IS THE MENU XML YOU HAVE CREATED
    return super.onCreateOptionsMenu(menu);
}

要运行函数(在您的情况下,启动一个Activity),请覆盖onOptionsItemSelected()。例如:

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {

    case R.id.action_settings:

        // DO SOMETHING HERE

        return true;

    case R.id.action_information:

        // DO SOMETHING HERE

        return true;

    case R.id.action_impressum:

        // DO SOMETHING HERE

        return true;

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

例如,如果您需要在用户选择菜单XML中的PongActivity时启动action_settings,那么该块将如下所示:(此代码将进入如上图所示的onOptionsItemSelected()

case R.id.action_settings:
    // START THE PongActivity
    Intent startActivity = new Intent(this, PongActivity.class);
    startActivity(startActivity);

    return true;

答案 1 :(得分:1)

阅读官方doc。查找“处理点击事件”的位。

正如您已经猜到的那样,该机制与onClick处理程序模糊地工作,但是有一个名为onOptionsItemSelected()的单独方法,其中包含一个大的switch语句,其中包含您的活动定义的每个菜单项的大小写。

您的startActivity(intent)代码将进入相应的案例。