android - 如何处理操作栏按钮监听器

标签 android

我是 android 的新手,不知道应该在哪里编写操作栏按钮的 actionlistner 代码,这样我就不需要在所有 Activity 中编写 action listner 代码。

请看下图:我有一个用于操作栏菜单的 menu.xml 文件,并通过 onCreateOptionMenu 函数添加到我的一个 Activity 中。当用户点击我的操作栏的任何按钮时,我可以通过 onOptionItemSelected 函数跟踪它。

问题 1:对于所有其他 Activity ,我可以使用相同的 menu.xml 文件,但我是否需要覆盖每个 Activity 的 onCreateOptionMenu 函数。

问题2:是否需要在所有activity中都写onOptionItemSelected函数代码?

请建议我更好地解决这些问题。

enter image description here

最佳答案

Problem-1: For all other activity, i can use same menu.xml file but do i need to override onCreateOptionMenu function of each activity.

Problem 2: Do i need to write onOptionItemSelected function code in all activity?

您可以创建一个“基础”Activity 并实现其中的方法。然后您需要做的就是确保所有其他 Activity 扩展“基础”Activity

示例(请注意,我使用 ActionBarSherlock,所以我的“基础”Activity 最初扩展了 ShelockFragmentActivity - 这可能与您的情况不同,但这只是一个示例)。 .

public class MyBaseFragmentActivity extends SherlockFragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getSupportMenuInflater();
        inflater.inflate(R.menu.my_menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        super.onOptionsItemSelected(item);

        // Handle menu selection here
    }
}

现在,任何扩展该“基”ActivityActivity 都将自动继承“基”类的菜单创建和项目选择方法。

public class ActivityA extends MyBaseFragmentActivity {

    // No need to create the menu or handle item selection

}

关于android - 如何处理操作栏按钮监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16224011/

相关文章:

android - 将 "installer"包值设置为 getInstallerPackageName() 中返回的值

android - 如何垂直滚动 ConstraintLayout?

java - 使用 Android WebViewClient 启用特定 SSL 协议(protocol)

android - 显示键盘时防止 DialogFragment 调整大小/折叠

java.lang.可抛出的 : addInArray in RecyclerView

android - 使用Android SDK 28 Proguard更新Gradle插件3失败

android - 如何列出设备上的所有图像?

java - 如何正确关闭BufferedReader

android - Lint 在组装发布目标时发现 fatal error - gradle 错误?

android - 文件提供者 "Failed to find configured root"异常