私はこのエラーの原因を見つけようとしています:
>07-13 23:44:06.715: E/AndroidRuntime(2932): FATAL EXCEPTION: main
07-13 23:44:06.715: E/AndroidRuntime(2932): java.lang.NullPointerException
07-13 23:44:06.715: E/AndroidRuntime(2932): at android.app.Activity.findViewById(Activity.java:1825)
07-13 23:44:06.715: E/AndroidRuntime(2932): at com.example.usignasync.MainActivity.runOverlaysAgain(MainActivity.java:141)
私の目的は、GPS の位置が変更されたときにいくつかのマップ オーバーレイをリロードすることなので、GPS をセットアップして をonLocationChanged()
呼び出しましたが、 を使用してクラス外でrunOverlaysAgain()
使用する関数を呼び出すことはできません。これは、が使用するクラスにあり、MapActivity を使用するクラスにあるためです。したがって、基本的にから実行することはできません 。これを修正するにはどうすればよいですか? 以下は、エラーに記載されているように、2 行目は 141 行目です。findViewById
Activity
onLocationChanged()
LocationListener
runOverlaysAgain()
findViewById
LocationListener
runOverlaysAgain()
protected void runOverlaysAgain(){
mapView = (MapView) findViewById(R.id.mapview);
mapOverlays = mapView.getOverlays();
Log.d("A", Integer.toString(mapOverlays.size()));
mapOverlays.clear();
String latitude;
String longitude;
if(lastKnownLocation!=null){
latitude = GPSTracker.yourLocation.substring(3,GPSTracker.yourLocation.indexOf("Long"));
longitude = GPSTracker.yourLocation.substring(GPSTracker.yourLocation.indexOf("Long")+4, GPSTracker.yourLocation.length());
}
else{
latitude="92000";
longitude ="92000";
}
再宣言の多くは、私が何が起こっているのかを理解しようとしただけで、うまくいきませんでした。それらは削除でき、同様のエラーが再び生成されます。したがって、このエラーを修正する方法と、onCreate() の外部で mapOverlays を作成する方法のいずれかが必要になる可能性が 2 つあります。
XML は次のとおりです。
<Button
android:id="@+id/readWebpage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="readWebpage"
android:text="Load Webpage" >
</Button>
<com.google.android.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:apiKey="0IhkxetuKVA3ujGbdU8kltq8tCDodiOrV-92Low"/>
<TextView
android:id="@+id/TextView01"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Example Text" >
</TextView>
</LinearLayout>
どんな助けでも大歓迎です、ありがとう。