如何知道哪个活动单击了按钮?

我有10个可扩展baseActivity的活动。我的BaseActivity基本上有一个帮助菜单图标。当用户按下帮助菜单图标时,我应该显示该活动的帮助菜单。我怎么知道哪个活动称为帮助菜单,所以我知道要显示哪个xml资源

public class BaseActivity extends Activity {

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.help_menu, menu);
        return true;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle item selection
        switch (item.getItemId()) {
            case R.id.help_menu_item:
                    displayHelpMenu();          
                return true;

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

    protected void displayHelpMenu(){

             // I will load the xml to the textview and display it in dialog. How can I know which xml resource to load

    }
}
阿姆利亚·卡雷(Amulya Khare)

找出的一种方法Activity是使用instanceOf像这样的东西:

protected void displayHelpMenu() {
    // I will load the xml to the textview and display it in dialog.
    // How can I know which xml resource to load

    if(this instanceOf DerivedActivity.class) {
        // load XML file
    }
    else if(...) {
    ...
    }
}

但是,我认为,尽管这可以解决您的问题,但这并不是正确的处理方式。在OOP中,当您遇到这样的情况时,应使用方法重写

base class定义加载资源,而派生类应提供的文件加载名称的一般功能。换句话说,base class不应了解derived class更好的解决方案是:

protected void displayHelpMenu() {

    // ask each child class for the help menu resource file
    int resId = getHelpMenuResource();

    // write code to load XML file with resId
    ...
    ...
}

protected int getHelpMenuResource() {
    return defaultMenuId;
}

现在在您的派生类中,@OverridegetHelpMenuResource()活动专用方法和返回资源ID。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何知道在Qt中单击了哪个按钮?

来自分类Dev

如何知道在JavaFX中单击了哪个按钮

来自分类Dev

如何知道用户单击哪个按钮?

来自分类Dev

如何知道在Qt中单击了哪个按钮?

来自分类Dev

如何知道引导程序模式关闭时单击了哪个按钮?

来自分类Dev

如何知道在vb.net中单击了哪个命令按钮?

来自分类Dev

如何知道在哪个项目中单击了按钮

来自分类Dev

如何知道活动参数属于哪个活动

来自分类Dev

如何知道哪个活动加载了html页面?

来自分类Dev

我怎么知道在按钮类中单击了哪个按钮?

来自分类Dev

有两个提交按钮并知道单击了哪个按钮

来自分类Dev

MVVM Light-UserControls的列表框,如何知道在哪个ItemIndex上单击了按钮

来自分类Dev

如何知道从父窗体Asp.net单击用户控件的哪个按钮?

来自分类Dev

如何知道在jQuery中单击了哪个锚?

来自分类Dev

如何知道正在单击MenuStrip的哪个项目?

来自分类Dev

如何知道右键单击哪个文件?

来自分类Dev

您如何知道哪个项目是图像或按钮

来自分类Dev

如何知道哪个用户按下了按钮

来自分类Dev

单击按钮组时如何识别单击了哪个按钮

来自分类Dev

如何仅显示单击哪个按钮的数据?

来自分类Dev

如何检测单击了哪个按钮?(Pynput)

来自分类Dev

如何检测单击了哪个按钮-Java

来自分类Dev

如何使用标签获取单击哪个按钮

来自分类Dev

我如何检查单击了哪个提交按钮

来自分类Dev

如何检测单击了哪个单选按钮?

来自分类Dev

如何检测单击了哪个删除按钮?

来自分类Dev

如何检测在javascript中单击了哪个按钮?

来自分类Dev

如何检测使用javascript单击了哪个按钮?

来自分类Dev

如何知道是否在tkinter中单击了按钮?

Related 相关文章

  1. 1

    如何知道在Qt中单击了哪个按钮?

  2. 2

    如何知道在JavaFX中单击了哪个按钮

  3. 3

    如何知道用户单击哪个按钮?

  4. 4

    如何知道在Qt中单击了哪个按钮?

  5. 5

    如何知道引导程序模式关闭时单击了哪个按钮?

  6. 6

    如何知道在vb.net中单击了哪个命令按钮?

  7. 7

    如何知道在哪个项目中单击了按钮

  8. 8

    如何知道活动参数属于哪个活动

  9. 9

    如何知道哪个活动加载了html页面?

  10. 10

    我怎么知道在按钮类中单击了哪个按钮?

  11. 11

    有两个提交按钮并知道单击了哪个按钮

  12. 12

    MVVM Light-UserControls的列表框,如何知道在哪个ItemIndex上单击了按钮

  13. 13

    如何知道从父窗体Asp.net单击用户控件的哪个按钮?

  14. 14

    如何知道在jQuery中单击了哪个锚?

  15. 15

    如何知道正在单击MenuStrip的哪个项目?

  16. 16

    如何知道右键单击哪个文件?

  17. 17

    您如何知道哪个项目是图像或按钮

  18. 18

    如何知道哪个用户按下了按钮

  19. 19

    单击按钮组时如何识别单击了哪个按钮

  20. 20

    如何仅显示单击哪个按钮的数据?

  21. 21

    如何检测单击了哪个按钮?(Pynput)

  22. 22

    如何检测单击了哪个按钮-Java

  23. 23

    如何使用标签获取单击哪个按钮

  24. 24

    我如何检查单击了哪个提交按钮

  25. 25

    如何检测单击了哪个单选按钮?

  26. 26

    如何检测单击了哪个删除按钮?

  27. 27

    如何检测在javascript中单击了哪个按钮?

  28. 28

    如何检测使用javascript单击了哪个按钮?

  29. 29

    如何知道是否在tkinter中单击了按钮?

热门标签

归档