When I click the button (it is called "current location"), it should display the current location (lat and long) in text form (with the name "tvAddress"). But this does not work as I expect. It gives me errors. The following are errors. Can you help me? Pls
Mistake:
02-05 23:37:22.429: E/AndroidRuntime(20293): FATAL EXCEPTION: main 02-05 23:37:22.429: E/AndroidRuntime(20293): java.lang.IllegalStateException: Could not execute method of the activity 02-05 23:37:22.429: E/AndroidRuntime(20293): at android.view.View$1.onClick(View.java:3680) 02-05 23:37:22.429: E/AndroidRuntime(20293): at android.view.View.performClick(View.java:4191) 02-05 23:37:22.429: E/AndroidRuntime(20293): at android.view.View$PerformClick.run(View.java:17229) 02-05 23:37:22.429: E/AndroidRuntime(20293): at android.os.Handler.handleCallback(Handler.java:615) 02-05 23:37:22.429: E/AndroidRuntime(20293): at android.os.Handler.dispatchMessage(Handler.java:92) 02-05 23:37:22.429: E/AndroidRuntime(20293): at android.os.Looper.loop(Looper.java:137) 02-05 23:37:22.429: E/AndroidRuntime(20293): at android.app.ActivityThread.main(ActivityThread.java:4960) 02-05 23:37:22.429: E/AndroidRuntime(20293): at java.lang.reflect.Method.invokeNative(Native Method) 02-05 23:37:22.429: E/AndroidRuntime(20293): at java.lang.reflect.Method.invoke(Method.java:511) 02-05 23:37:22.429: E/AndroidRuntime(20293): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) 02-05 23:37:22.429: E/AndroidRuntime(20293): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 02-05 23:37:22.429: E/AndroidRuntime(20293): at dalvik.system.NativeStart.main(Native Method) 02-05 23:37:22.429: E/AndroidRuntime(20293): Caused by: java.lang.reflect.InvocationTargetException 02-05 23:37:22.429: E/AndroidRuntime(20293): at java.lang.reflect.Method.invokeNative(Native Method) 02-05 23:37:22.429: E/AndroidRuntime(20293): at java.lang.reflect.Method.invoke(Method.java:511) 02-05 23:37:22.429: E/AndroidRuntime(20293): at android.view.View$1.onClick(View.java:3675) 02-05 23:37:22.429: E/AndroidRuntime(20293): ... 11 more 02-05 23:37:22.429: E/AndroidRuntime(20293): Caused by: java.lang.NullPointerException 02-05 23:37:22.429: E/AndroidRuntime(20293): at com.mamun.tasktest.MapActivity.marker(MapActivity.java:129) 02-05 23:37:22.429: E/AndroidRuntime(20293): ... 14 more
MapActivity.java
package com.mamun.tasktest; import java.io.IOException; import java.util.ArrayList; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.location.Address; import android.location.Geocoder; import android.location.Location; import android.location.LocationManager; import android.os.Bundle; import android.provider.Settings; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.GooglePlayServicesClient; import com.google.android.gms.location.LocationClient; import com.google.android.gms.location.LocationListener; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.MapFragment; import com.google.android.gms.maps.GoogleMap.OnMarkerDragListener; import com.google.android.gms.maps.model.BitmapDescriptorFactory; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.Marker; import com.google.android.gms.maps.model.MarkerOptions; public class MapActivity extends Activity implements GooglePlayServicesClient.ConnectionCallbacks, GooglePlayServicesClient.OnConnectionFailedListener, LocationListener { private LocationManager manager; private TextView tvAddress; private Button btncurrent; private LocationClient locationClient; private GoogleMap googleMap; private MapFragment mapFragment; @Override protected void onCreate(Bundle savedInstanceState) { manager = (LocationManager) getSystemService(LOCATION_SERVICE); tvAddress = (TextView) findViewById(R.id.tvaddress); btncurrent= (Button)findViewById(R.id.btncurrent super.onCreate(savedInstanceState); setContentView(R.layout.map); locationClient = new LocationClient(this, this, this); } public void marker(View v) { Location currentLocation = locationClient.getLastLocation(); tvAddress.setText(currentLocation.getLatitude()+" , "+ currentLocation.getLongitude()); Geocoder geocoder = new Geocoder(this); try { ArrayList<Address> addresses = (ArrayList<Address>) geocoder.getFromLocation(currentLocation.getLatitude(), currentLocation.getLongitude(), 5); Address addr = addresses.get(0); } catch (IOException e) {
map.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <EditText android:id="@+id/etSearch" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:hint="Search your location" > <requestFocus /> </EditText> <TextView android:id="@+id/tvaddress" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="@+id/btncurrent" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="marker" android:text="Current Location" android:layout_marginLeft="98dp" /> <Button android:id="@+id/btnsave" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Save" /> </LinearLayout> </LinearLayout> <FrameLayout android:id="@+id/map_container" android:layout_width="match_parent" android:layout_height="match_parent" > <fragment android:id="@+id/maps" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.MapFragment" /> </FrameLayout> </LinearLayout>
java android
user3076959
source share