片段页面有一个EditText,我设置了OnClickListener。当我单击EditText时,它将转到地图活动。在地图活动中获得纬度并将其发送回片段。当我回到片段时,纬度应该显示在EditText上。然而,EditText上没有任何内容。我如何解决这个问题?
final EditText latitude=(EditText)getActivity().findViewById(R.id.latitude);
latitude.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SharedPreferences sharedPreferences=getActivity().getSharedPreferences("test", Context.MODE_PRIVATE);
String lat=sharedPreferences.getString("latitude","");
String lon=sharedPreferences.getString("longitude","");
Intent intent=new Intent(getContext(),MapsActivity.class);
startActivity(intent);
latitude.setText(lat);
}
});
这是片段页面中的代码。公共void onMapReady(GoogleMap GoogleMap){mMap=GoogleMap;
LatLng hk=new LatLng(latitude,longitude);
final Marker Place=mMap.addMarker(new MarkerOptions().position(hk).title("HK").draggable(true));
mMap.moveCamera(CameraUpdateFactory.newLatLng(hk));
mMap.setOnMarkerDragListener(new GoogleMap.OnMarkerDragListener() {
@Override
public void onMarkerDragStart(Marker marker) {
LatLng location=Place.getPosition();
Double lat=location.latitude;
String lat2=lat.toString();
Double lon=location.longitude;
String lon2=lon.toString();
SharedPreferences sharedPreferences=getSharedPreferences("test", MODE_PRIVATE);
sharedPreferences.edit().putString("latitude",lat2).putString("longitude",lon2).commit();
Place.setTitle("latitude"+lat2+"\n"+"longitude"+lon2);
}
@Override
public void onMarkerDrag(Marker marker) {
}
@Override
public void onMarkerDragEnd(Marker marker) {
}
});
}
这是地图活动中的代码。
有多种方法可以实现这一点,如使用startActivityForResult()
final EditText latitude=(EditText)getActivity().findViewById(R.id.latitude);
latitude.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(getContext(),MapsActivity.class);
startActivityForResult(intent,001);
}
});
在这个活动中放这个方法,它将把活动结果传递给你的片段。
Fragment your_fragment;
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
fragmenet.onActivityResult(requestCode, resultCode, data);
}
在你的片段类中把这段代码
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
latitude.setText(data.getDoubleExtra("lat",0)+ "," +data.getDoubleExtra("lng",0));
}
在下一个活动中
mMap.setOnMarkerDragListener(new GoogleMap.OnMarkerDragListener() {
@Override
public void onMarkerDragStart(Marker marker) {
LatLng location=Place.getPosition();
Intent intent = new Intent();
intent.putExtra("lat", location.latitude);
intent.putExtra("lat", location.longitude);
setResult(001, intent);
finish();
}
@Override
public void onMarkerDrag(Marker marker) {
}
@Override
public void onMarkerDragEnd(Marker marker) {
}
});
我有一个活动,它从其他活动中获取一些字符串: 这行得通。 从这个活动< code>ShowPoints中,我想将接收到的字符串< code>points发送到它的片段< code>PointsOnMap 为此,我创建了并执行以下操作: 但是,片段<code>PointsOnMap<code>的<code>字符串点 我想知道我做错了什么。我在这里阅读了其他一些帖子,似乎我正在以正确的方式做到这一点。
在适配器中 Holder.NameExam2.SetOnClickListener(新建View.OnClickListener(){ 成碎片 @覆盖公共视图onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState){ 它在getString()中调用空指针异常。如何解决。
我想在收到一些HTTP请求的响应后,更新几个<code>片段 。-- 活动 适配器 碎片样本 日志显示位置0,1处的片段的<code>updateData</code>工作良好。但是对于位置2处的片段,它会导致错误。 我发现的区别是适配器没有为位置2调用,这意味着没有调用的。因此不存在。 我的直觉告诉我,问题一定来自适配器的工作流或fragmentManager事务。但是作为一个Android初学
我有PushNotificationService onMes和我的方法 如果我在程序中,一个通知来自 但是,当程序关闭时,当我在后台单击通知时,它不会转到我想要的页面,而只会转到主页。 我想当ı点击notifi开放活动 } 我的主要活动 } 这是我的密码
我目前正在制作一个android应用程序,我想在activity和fragment之间传递一个日期。我的活动有一个按钮,打开片段:DatePickerFragment。 在我的活动中,我显示了一个日期,我想用片段修改它。因此,我想将日期传递给datepicker,并将其发送回活动。 我已经尝试了很多解决方案,但都没有奏效。简单的方法是传递一个参数,但这不能用片段来完成。
我需要从 MainActivity 向 Android Google 地图(片段)添加标记 这是我的代码; 我想在这里添加一个标记: 所有这些都是因为我想从我的主要活动中与我的地图进行交互,其中我有一些按钮和编辑文本 主要活动 这是它的样子,已经有了一个标记,但是我需要在MainActivity中设置它,而不是从map activity中调用它