【问题标题】:How to temporarily block the ability to click a menu item如何暂时阻止单击菜单项的能力
【发布时间】:2020-07-09 04:30:35
【问题描述】:

当我点击某个活动打开的特定元素时,我有一个菜单,但用户可以快速单击菜单项 2 次,这将导致活动打开 2 次。第一次按下后如何阻止按下按钮的功能?

   @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();

        if (id == R.id.create) {
            // start activity 
        }

        return super.onOptionsItemSelected(item);
    }

我知道 setEnabled,但是当我返回启用的活动时,它仍然为 false,并且保存 MenuItem 并返回其状态似乎不方便。任何人都知道如何以最佳方式做到这一点?

【问题讨论】:

  • 创建一个标志并将其设置为activity 1 loading,第二次单击将调用相同的方法,如果设置了标志,则不要启动活动,如果你想这样做通用在AndroidManifest.xml 中尝试launchMode='singleTask' 的方式,也可以尝试android:launchMode = "singleTop"

标签: java android android-studio android-fragments menu


【解决方案1】:

我找到了解决这个问题的最佳方法。为此,请将 FLAG_ACTIVITY_CLEAR_TOP 标志添加到 Intent。因此,不可能创建 2 个活动。

  intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-02
    相关资源
    最近更新 更多