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方法来进行片段之间的通信。