2

我是一名 Android 新手,正在开发一个需要选项菜单的应用程序。我目前通过将选项菜单设置为主要活动并在主要活动中扩展它来实现选项菜单。

但是由于我在一个团队中工作,这种方法并不总是适用于我们,因为我们需要扩展另一个必不可少的活动。

我的问题 如何在不扩展主活动中的活动的情况下在应用程序中实现此选项菜单?

我当前的设置

  1. 我有一个 MainActivity(首先开始) - MainActivity 扩展了 MenuClass
  2. 我有 OptionsMenu 类,MenuClass(我希望这是应用程序范围的) - MenuClass 扩展了 Activity
  3. 我还有其他三个类,它们扩展了 Activity 本身!这三个活动是从 MainActivity 触发的,完成后返回到 MainActivity。
4

1 回答 1

2

如果您不想或无法创建一个基本 Activity 来让其他所有 Activity 扩展 - 为什么没有一个实用程序类,它有一个public static void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {...}函数和一个public static boolean onOptionsItemSelected(MenuItem item) {...}?

public class Utils {
    public static void onCreateOptionsMenu(Menu menu, MenuInflater inflater ){
        //... create default options here
    }

    public static boolean onOptionsItemSelected(MenuItem item) {
        //... see if you want to handle the selected option here, return true if handled
    }
  }

然后从你的活动中你可以这样做:

public class YourActivity extends Activity {

// ...


public void onCreateOptionsMenu(Menu menu, MenuInflater inflater ){
   Utils.onOptionsItemSelected(menu, inflater);
   //... add other options here
}


public boolean onOptionsItemSelected(MenuItem item) {
    boolean handled = Utils.onOptionsItemSelected(item);
    if (!handled) {
        switch(item.getItemId()) {
            case R.id.menu_sign_out:
                //... deal with option
            break;
            //.. deal with other options
        }
    }
    return handled;
}

您可能希望根据您将其构建到应用程序中的方式来更改它的确切实现 - 即您可能不希望 utils 方法是静态的,因为您可能需要在其中维护一些状态,但这应该可以工作。

于 2011-11-14T16:16:47.933 回答