我有一个问题,我当前的位置地址显示了一个 textView
但问题是点击发送按钮后,会出现错误
但我想通过带有谷歌地图超链接的电子邮件发送我当前的位置
请检查我的问题,请给我任何解决方案
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// making it full screen
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
........
}
@Override
public void onLocationChanged(Location location) {
TextView tvLocation = (TextView) findViewById(R.id.tv_location);
String address = "";
Geocoder geoCoder = new Geocoder(
getBaseContext(), Locale.getDefault());
// Getting latitude
double latitude = location.getLatitude();
// Getting longitude
double longitude = location.getLongitude();
// Creating an instance of GeoPoint corresponding to latitude and longitude
GeoPoint point = new GeoPoint((int)(latitude * 1E6), (int)(longitude*1E6));
try {
List<Address> addresses = geoCoder.getFromLocation(
point.getLatitudeE6() / 1E6,
point.getLongitudeE6() / 1E6, 1);
if (addresses.size() > 0) {
for (int index = 0; index < addresses.get(0).getMaxAddressLineIndex(); index++)
address += addresses.get(0).getAddressLine(index) + " ";
}
tvLocation.setText("Address :" + address );
}
catch (IOException e) {
e.printStackTrace();
}
// Setting latitude and longitude in the TextView tv_location
tvLocation.setText("Latitude:" + latitude + ", Longitude:"+ longitude +", Add :"+ address );
// Getting MapController
MapController mapController = mapView.getController();
// Locating the Geographical point in the Map
mapController.animateTo(point);
// Applying a zoom
mapController.setZoom(15);
// Redraw the map
mapView.invalidate();
// Getting list of overlays available in the map
List<Overlay> mapOverlays = mapView.getOverlays();
// Creating a drawable object to represent the image of mark in the map
Drawable drawable = this.getResources().getDrawable(R.drawable.cur_position);
// Creating an instance of ItemizedOverlay to mark the current location in the map
CurrentLocationOverlay currentLocationOverlay = new CurrentLocationOverlay(drawable);
// Creating an item to represent a mark in the overlay
OverlayItem currentLocation = new OverlayItem(point, "Current Location", "Latitude : " + latitude + ", Longitude:" + longitude);
// Adding the mark to the overlay
currentLocationOverlay.addOverlay(currentLocation);
// Clear Existing overlays in the map
mapOverlays.clear();
// Adding new overlay to map overlay
mapOverlays.add(currentLocationOverlay);
}
public void onSendLocationEmail(View button) {
final TextView txtview = (TextView) findViewById(R.id.tv_location);
String txt = txtview.getText().toString();
// Take the fields and format the message contents
String subject = formatSubject(txt);
String message = formatMessage(txt);
sendMessage(subject, message);
Toast.makeText(getApplicationContext(),"Clicked Send Email Button" + "-", Toast.LENGTH_SHORT).show();
}
private String formatSubject(String txt) {
String strSubjectFormat = getResources().getString(R.string.mapsubject_format);
String strSubject = String.format(strSubjectFormat, txt);
return strSubject;
}
private String formatMessage(String txt) {
String strFormatMsg = getResources().getString(R.string.mapbody_format);
//String strRequiresResponse = getResponseString(bRequiresResponse);
String strMsg = String.format(strFormatMsg, txt);
return strMsg;
}
private void sendMessage(String subject, String message) {
Intent messageIntent = new Intent(android.content.Intent.ACTION_SEND);
CharSequence location = lastLocation.getLatitudeE6()/ 1E6 + "," + lastLocation.getLongitudeE6()/ 1E6;
String aEmailList[] = { "srinivasareddy1250@gmail.com" };
messageIntent.putExtra(android.content.Intent.EXTRA_EMAIL, aEmailList);
messageIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
messageIntent.setType("plain/text");
messageIntent.putExtra(android.content.Intent.EXTRA_TEXT, message + "http://maps.google.comk/maps/maps?q=loc:"+location);
}
这是我的错误
不幸的是项目已经停止
01-29 07:34:39.439: E/AndroidRuntime(3693): FATAL EXCEPTION: main
01-29 07:34:39.439: E/AndroidRuntime(3693): java.lang.IllegalStateException: Could not execute method of the activity
01-29 07:34:39.439: E/AndroidRuntime(3693): at android.view.View$1.onClick(View.java:3597)
01-29 07:34:39.439: E/AndroidRuntime(3693): at android.view.View.performClick(View.java:4202)
01-29 07:34:39.439: E/AndroidRuntime(3693): at android.view.View$PerformClick.run(View.java:17340)
01-29 07:34:39.439: E/AndroidRuntime(3693): at android.os.Handler.handleCallback(Handler.java:725)
01-29 07:34:39.439: E/AndroidRuntime(3693): at android.os.Handler.dispatchMessage(Handler.java:92)
01-29 07:34:39.439: E/AndroidRuntime(3693): at android.os.Looper.loop(Looper.java:137)
01-29 07:34:39.439: E/AndroidRuntime(3693): at android.app.ActivityThread.main(ActivityThread.java:5039)
01-29 07:34:39.439: E/AndroidRuntime(3693): at java.lang.reflect.Method.invokeNative(Native Method)
01-29 07:34:39.439: E/AndroidRuntime(3693): at java.lang.reflect.Method.invoke(Method.java:511)
01-29 07:34:39.439: E/AndroidRuntime(3693): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
01-29 07:34:39.439: E/AndroidRuntime(3693): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
01-29 07:34:39.439: E/AndroidRuntime(3693): at dalvik.system.NativeStart.main(Native Method)
01-29 07:34:39.439: E/AndroidRuntime(3693): Caused by: java.lang.reflect.InvocationTargetException
01-29 07:34:39.439: E/AndroidRuntime(3693): at java.lang.reflect.Method.invokeNative(Native Method)
01-29 07:34:39.439: E/AndroidRuntime(3693): at java.lang.reflect.Method.invoke(Method.java:511)
01-29 07:34:39.439: E/AndroidRuntime(3693): at android.view.View$1.onClick(View.java:3592)
01-29 07:34:39.439: E/AndroidRuntime(3693): ... 11 more
01-29 07:34:39.439: E/AndroidRuntime(3693): Caused by: java.lang.NullPointerException
01-29 07:34:39.439: E/AndroidRuntime(3693): at com.sygnet.locationingooglemap.MainActivity.sendMessage(MainActivity.java:219)
01-29 07:34:39.439: E/AndroidRuntime(3693): at com.sygnet.locationingooglemap.MainActivity.onSendLocationEmail(MainActivity.java:191)
01-29 07:34:39.439: E/AndroidRuntime(3693): ... 14 more