2015-05-21 2 views
0

Главная Java Файл:андроид возвращение locationlistener нулевое значение

public class MainActivity extends Activity implements LocationListener { 
    TextView tv; 
    TextView tv2; 
    TextView tv3; 
    LocationListener locationListener; 
    static final String tag="********MAIN********"; 
    LocationManager lm; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      lm= (LocationManager) getSystemService(LOCATION_SERVICE); 
      } 
    @Override 
    protected void onResume() { 
     super.onResume(); 
     lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0,0,locationListener); 
    } 
    @Override 
    public void onLocationChanged(Location location) { 
     Log.i(tag,"Location Changed Method Called"); 
     String lat= String.valueOf(location.getLatitude()); 
     String log= String.valueOf(location.getLongitude()); 
     tv.setText(lat+ " " + log); 
    } 
    @Override 
    public void onStatusChanged(String provider, int status, Bundle extras) { 
    } 
    @Override 
    public void onProviderEnabled(String provider) { 
    } 
    @Override 
    public void onProviderDisabled(String provider) { 
    } 
} 

манифеста Файл:

<?xml version="1.0" encoding="utf-8"?> 

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> 
<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 


    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

Вход

Ошибки:

05-21 18: 51: 53,970 22842-22842/p2p.boysjoys.com.alpha Е/AndroidRuntime: неустранимое: Главный java.lang.RuntimeException: Невозможно возобновить activity {p2p.boysjoys.com.alpha/p2p.boysjoys.com.alpha.MainActivity}: java.lang.IllegalArgumentException: listener == null at android.app.ActivityThread.performResumeActivity (ActivityThread.java:2596) на android .app.ActivityThread.handleResumeActivity (ActivityThread.java:2624) at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2101) at android.app.ActivityThread.access $ 600 (ActivityThread.java:138) на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1207) на android.os.Handler.dispatchMessage (Handler.java:99) на android.os.Looper.loop (Looper.java:213) на android.app.ActivityThread.main (ActivityThread.java:4787) по адресу java.lang.reflect.Method.invokeNative (собственный метод) по адресу java.lang.reflect.Method.invoke (Method.java:511) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:789) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:556) at dalvik.system.NativeStart.main (Native Method) Вызвано: java.lang.IllegalArgumentException: listener == null at android.location.LocationManager.requestLocationUpdates (LocationManager.java:510) at p2p.boysjoys.com.alpha.MainActivity.onResume (MainActivity.java:38) at android.app.Instrumentation.callActivityOnResume (Instrumentation.java: 1184) at android.app.Activity.performResume (Activity.java:5082) at android.app.ActivityThread.performResumeActivity (ActivityThread.java:2586) at android.app.ActivityThread.handleResumeActivity (ActivityThread.java:2624) at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2101) at android.app.ActivityThread.access $ 600 (ActivityThread.java:138) at android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1207) на android.os.Handler.dispatchMessage (Handler.java:99) на android.os.Looper.loop (Looper.java:213) на android.app.ActivityThread.main (ActivityThread.java:4787) на java .lang.reflect.Method.invokeNative (собственный метод) в java.lang.reflect.Method.invoke (Method.java:511) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java: 789) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:556) at dalvik.system.NativeStart.Основной (Native Method)

Я пытаюсь получить locationкак только приложение открывает и он будет установлен в textview, но я получаю ERRO на line no.38, как указал LogCat

Эта линия является :

lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0,0,locationListener); 

Я попытался как gps и network на phone, а также на emulator, но она по-прежнему дает тот же Ошибка java.lang.IllegalArgumentException: listener==null

+0

ваша деятельность реализует интерфейс LocationListener. используйте это вместо locationListener – Blackbelt

ответ

1

Изменение:

lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0,0,locationListener); 

с этим:

lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0,0,this); 

Ваш класс уже реализует LocationListener. Просто используйте его. (однако в коде вы пытаетесь использовать locationListener без его инициализации)

+0

Спасибо большое за все, что он сработал, и еще одна ошибка, которую я делал, чтобы установить текст без ссылки на textview в activitymain.xml –

1

вместо:

lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0,0,locationListener); 

использование:

lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0,0,this); 
Смежные вопросы