隐藏进度条小部件

q9rjltbz  于 2021-09-29  发布在  Java
关注(0)|答案(2)|浏览(365)

我使用intent从主活动开始活动1。activity1加载(可能是广告)需要相当长的时间,因此为了向用户保证我的应用程序没有崩溃,我在线性布局id加载中显示了一个圆形进度条。为此,我在按钮的onclick事件中将加载的可见性设置为visible。从activity1返回时,我将可见性设置为不可见,如下所示:

ActivityResultLauncher<Intent> resultLaunch = registerForActivityResult(
        new ActivityResultContracts.StartActivityForResult(),
        result -> {
            if(result.getResultCode()==111){
                assert result.getData() != null;
                String data= result.getData().getStringExtra("from");
                if(data.equals("activity1")) {
                    loading.setVisibility(View.INVISIBLE);// back from Activity1 switch-off 
loading

                }
            }

这很有效,但如果用户点击手机进度条的后退按钮,它将永远可见。我已尝试在mainactivity的onresume()中设置可见性,但它不起作用。我宁愿避免设置计时器。有什么帮助吗?

ma8fv8wu

ma8fv8wu1#

@Override
public void onResume(){
    super.onResume();
    loading.setVisibility(View.INVISIBLE);// back from Activity1 switch-off loading
}

结果我工作得很好

pw136qt2

pw136qt22#

发生这种情况的原因是,结果代码不等于111。使用result.success更改111,它将正常工作。如果即使数据为空也要隐藏进度条,请添加else语句,并将进度条的可见性设置为“进入”。

相关问题