gpt4 book ai didi

android - 在 Android 上实现应用程序范围选项菜单的最佳方式是什么?

转载 作者:行者123 更新时间:2023-11-29 00:43:13 25 4
gpt4 key购买 nike

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

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

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

我当前的设置

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

最佳答案

如果你不想,或者不能创建一个基本 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
}
}

然后从您的 Activity 中您可以执行此操作:

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 方法是静态的,因为您可能需要在其中维护一些状态,但这应该工作。

关于android - 在 Android 上实现应用程序范围选项菜单的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8124353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com