【问题标题】:Disable button after returning from an intent从意图返回后禁用按钮
【发布时间】:2022-09-24 23:04:05
【问题描述】:

下午我需要调用一个意图并在返回后禁用按钮 X 秒。 我尝试了以下变体,它们要么立即禁用按钮,然后启用,要么不做我需要的完全停止。

        Guarding.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Guarding.setEnabled(false);
                SharedPref.write(SharedPref.SCANTYPE,\"GUARDING\");
                Intent intent = new Intent(Menu.this, CmxScanner.class);
                startActivity(intent);
                Guarding.postDelayed(new Runnable() {
                    public void run() {
                        Guarding.setEnabled(true);
                        //Log.d(TAG,\"resend1\");
                    }
                },10000);
            }
        });

因此,在第一次进入菜单时,我有一个启用的按钮,单击它后必须调用意图并在返回时再次禁用该按钮 X 秒。在它将启用并允许对 Intent 进行第二次请求之前

  • 您好,欢迎来到 SO!你能详细说明你的问题吗?当您说“返回时”时,您是什么意思?您想要展示的确切行为是什么? (无法从您的问题中弄清楚)
  • 您好,感谢您的回答。我有一个触发意图的按钮。我在意图中执行了一些操作,完成后返回调用意图。返回调用意图后,我需要在短时间内禁用调用它的按钮

标签: java android android-studio


【解决方案1】:

您可以按照 Android 文档here 中的说明注册您的调用活动以获得结果。然后在结果回调中,您只需在 10 秒后启用按钮:

ActivityResultLauncher<String> mGetContent = registerForActivityResult(new GetContent(),
    new ActivityResultCallback<Uri>() {
        @Override
        public void onActivityResult(Uri uri) {
            Guarding.postDelayed(new Runnable() {
                public void run() {
                    Guarding.setEnabled(true);
                }
            }, 10000);
        }
    }
});

【讨论】:

    猜你喜欢
    • 2020-06-04
    • 2013-12-02
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 2014-08-01
    • 2013-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多