代码之家  ›  专栏  ›  技术社区  ›  ASHMIL

将活动中的BroadcastReceiver数据发送到对话框中

  •  2
  • ASHMIL  · 技术社区  · 6 年前

    我有一个活动,通过蓝牙接收一些字符串数据。我需要将此数据发送到一个已打开的对话框,因为它来自蓝牙。

    //Getting Bluetooth data from the receiver
    private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String data = intent.getStringExtra("Status");
    
                //I need to send data from here to a dialog
    
    
            }
        }
    };
    

    我的对话是普通的DialogFragment

    数据将通过广播传送到各县,我需要在对话框中获取数据。

    提前谢谢。

    1 回复  |  直到 6 年前
        1
  •  1
  •   duggu Neeraj Nama    6 年前

    您需要检查顶部可见片段,如果它是您的对话框片段,那么您需要将数据传递到您的对话框片段中:-

    // this code inside your onReceive()
    String data = intent.getStringExtra("Status");
    Fragment fragment = getTopVisibleFragment(getSupportFragmentManager(),R.id.fragment_container);
    if (fragment != null && fragment instanceof DialogFragment) {
          fragment.setData(data);
    }
    
    
    public static Fragment getTopVisibleFragment (FragmentManager manager, int containerId) {
        return manager.findFragmentById(containerId);
    }