首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >调用dismiss时,模式底表不会重新显示

调用dismiss时,模式底表不会重新显示
EN

Stack Overflow用户
提问于 2020-03-04 14:40:46
回答 1查看 316关注 0票数 0

我已经在我的主要活动中添加了一个模式底部工作表,每当用户GPS/互联网关闭时显示。我已经添加了一个LocalBroadcast接收器,当用户从电话上打开他的全球定位系统/互联网时,它可以很好地收听。所以我需要当用户打开全球定位系统/互联网来隐藏模式底板,当他关闭它时,总是显示底板。我已经尝试了this,它只在应用程序的初始启动时工作,也就是说,当全球定位系统关闭时,对话框显示当用户打开全球定位系统时,它就消失了,但问题是,当用户现在关闭全球定位系统时,它第一次被解除,当用户现在关闭全球定位系统时,它不会像预期的那样显示,广播接收器被触发。这是我的广播接收器

代码语言:javascript
运行
复制
 private BroadcastReceiver locationSwitchStateReceiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {

            if (android.location.LocationManager.PROVIDERS_CHANGED_ACTION.equals(intent.getAction())) {

             validateGPSAndInternet();

            }
        }
    };
EN

回答 1

Stack Overflow用户

发布于 2020-03-04 15:06:33

您可以在ConnectionBottomSheet中声明静态变量,以便在片断之外关闭底部工作表。

代码语言:javascript
运行
复制
public class ConnectionBottomSheet extends BottomSheetDialogFragment {  

    public static ConnectionBottomSheet fragment;     
    //your code

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() != null) {
            CON_TYPE = getArguments().getString(con_type);

        }
     fragment=this;
   }
   @Override
   public void onDestroy() {
        super.onDestroy()
       fragment=null;
    }
  //your code 
}

在主活动中调用

代码语言:javascript
运行
复制
 if(ConnectionBottomSheet.fragment!=null && ConnectionBottomSheet.fragment.getDialog()!=null)
    ConnectionBottomSheet.fragment.getDialog().dismiss()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60520351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档