Android onActivityResult从一个片段到另一个片段

Android onActivityResult从一个片段到另一个片段,android,android-recyclerview,Android,Android Recyclerview,在我的recyclerview适配器中,我将onClick定义为: holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Snackbar.make(view, "View Clicked: "+Double.toString(position)+", "+current.getPla

在我的
recyclerview
适配器中,我将onClick定义为:

 holder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
          Snackbar.make(view, "View Clicked: "+Double.toString(position)+", "+current.getPlace(),
                  Snackbar.LENGTH_LONG).show();
         }
      });
此视图包含一个地方的
纬度
长纬度
。现在,我的目标是将LatLng传输到MapFragment上的OnActivityResult以显示地图

在我的地图片段中,我已经有一个onActivityResult,如下所示:

 int PLACE_PICKER_REQUEST = 1;

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();
    try {
      startActivityForResult(builder.build(getActivity()), PLACE_PICKER_REQUEST);
    } catch(GooglePlayServicesRepairableException |
        GooglePlayServicesNotAvailableException e) {
        e.printStackTrace();
    }
    return true;
  }

  // Get LatLng from placePicker
  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == PLACE_PICKER_REQUEST) {
      if (resultCode == Activity.RESULT_OK) {
        Place place = PlacePicker.getPlace(data, getContext());
        String toastMsg = String.format("Place: %s", place.getName());
        System.out.println(place);
        Snackbar.make(getView(), toastMsg, Snackbar.LENGTH_LONG).show();
        latlang.Lat = place.getLatLng().latitude;
        latlang.Lang = place.getLatLng().longitude;
        addMarker(place); 
 ....
}
由于我是java新手,我无法解决如何从适配器获取数据到ActivityResult的问题


伪代码将非常有用。

我也有同样的问题,我通过发送广播实现了这样的功能

1、从你们有纬度的地方发送广播,经度如下

   Intent intente = new Intent("visible_text");
   intente.putExtra("lati", coordl1);
   intente.putExtra("longi", coordl2);
   intente.putExtra("name", strAddress);
   intente.putExtra("from", "drop");
   sendBroadcast(intente);
   finish();
2,现在你可以得到你想要的碎片/技艺 #在简历中注册广播,如下所示:

@Override
protected void onResume() {
    super.onResume();
registerReceiver(broadcast_reciever_visible_text,newIntentFilter("visible_text"));
}
3,现在在ondestroy方法中注销接收器,如下所示

 @Override
protected void onDestroy() {
    super.onDestroy();
    unregisterReceiver(broadcast_reciever_visible_text);
}
  BroadcastReceiver broadcast_reciever_visible_text = new BroadcastReceiver() {
    @Override
    public void onReceive(Context arg0, Intent intent) {
        String action = intent.getAction();
        if (action.equals("visible_text")) {
            if (MyUtills.isNetworkAvailable(MainActivity.this)) {
                lati = intent.getExtras().getString("lati");
                longi = intent.getExtras().getString("longi");
                location_name = intent.getExtras().getString("name");
                TAG_FROM = intent.getExtras().getString("from");

               }
          }
    }
};
4,现在你们可以从接收机中获得纬度或经度,它可能如下所示

 @Override
protected void onDestroy() {
    super.onDestroy();
    unregisterReceiver(broadcast_reciever_visible_text);
}
  BroadcastReceiver broadcast_reciever_visible_text = new BroadcastReceiver() {
    @Override
    public void onReceive(Context arg0, Intent intent) {
        String action = intent.getAction();
        if (action.equals("visible_text")) {
            if (MyUtills.isNetworkAvailable(MainActivity.this)) {
                lati = intent.getExtras().getString("lati");
                longi = intent.getExtras().getString("longi");
                location_name = intent.getExtras().getString("name");
                TAG_FROM = intent.getExtras().getString("from");

               }
          }
    }
};

现在,我希望您能够实现这一点并愉快地编码……

适配器是否在MapFragment中?或者它在不同的片段中?适配器在另一个片段中fragment@HemantParmar如我所说,由于我缺乏java方面的经验,我无法解决这个问题。我已经检查了你之前建议的链接,但不幸的是,这还不足以让我提供更多的代码。。通常我们不使用onactivityresult方法来进行片段之间的通信。