ほとんど同じ質問をした多くの投稿を読みましたが、それは私の問題を解決するのに役立ちません。問題は、緯度と経度の 2 つの EditTexts の情報を常に更新するアプリを作成しようとしていることです。デバイスの GPS。チュートリアルでは、MainActivity 内にクラスを作成するのを見たので、ほぼ同じことを試みますが、新しいクラス ファイルを作成します。MainActivity に情報を送信すると、EditText に到達しますが、理由がわからない情報でそれらを埋めることができないようです... AsynkTask を実装しようとするスレッドである可能性があると考えています (しかし、私の Android スキルは高くありません)、同じエラーが発生しています...誰かが私を助けることができれば、私は本当に素晴らしいです!次にコードを投稿します...
これはMainActivity です
public class MainActivity extends Activity {
public EditText edTLatitud;
public EditText edTLongitud;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edTLatitud = (EditText)this.findViewById(R.id.edTxtLatitud);
edTLongitud = (EditText)this.findViewById(R.id.edTxtLongitud);
ConfigGps();
}
private void ConfigGps()
{
LocationManager mLocationManager;
LocationListener mLocationListener;
mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
mLocationListener = new MyLocationListener();
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,5000, 1, mLocationListener);
}
これは新しいファイル クラスです。
public class MyLocationListener implements LocationListener{
private MainActivity mainActivity = new MainActivity();
private GPSBackground gpsBackground = new GPSBackground();
private String Latitud,Longitud;
@Override
public void onLocationChanged(Location location) {
gpsBackground.execute(location);
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
private class GPSBackground extends AsyncTask<Location, Void,Void>
{
@Override
protected Void doInBackground(Location... params) {
Location location = params[0];
try{
mainActivity.edTLatitud.setText(String.valueOf(location.getLatitude()));
mainActivity.edTLongitud.setText(String.valueOf(location.getLongitude()));
}
catch (Exception e)
{
e.printStackTrace();
}
return null;
}
}
}
私がキャッチするエラーは次のとおりです。
563-572/com.apps3d.logixuexapp W/System.err: java.lang.NullPointerException 08-22 18:57:40.745 563-572/com.apps3d.logixuexapp W/System.err: com.apps3d.logixuexapp.MyLocationListener$GPSBackground.doInBackground (MyLocationListener.java:50) で 08-22 18:57:40.745 563-572/com.apps3d.logixuexapp W/System.err: com.apps3d.logixuexapp.MyLocationListener$GPSBackground.doInBackground (MyLocationListener.java:42) で 08-22 18:57:40.755 563-572/com.apps3d.logixuexapp W/System.err: android.os.AsyncTask$2.call(AsyncTask.java:185) 08-22 18:57:40.755 563-572/com.apps3d.logixuexapp W/System.err: java.util.concurrent.FutureTask$Sync.innerRun (FutureTask.java:306) で 08-22 18:57:40.755 563-572/com.apps3d.logixuexapp W/System.err: java.util.concurrent.FutureTask.run (FutureTask.java:138) で 08-22 18:57:40.755 563-572/com.apps3d.logixuexapp W/System.err: java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1088) で 08-22 18:57:40.755 563-572/com.apps3d.logixuexapp W/System.err: java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:581) で 08-22 18:57:40.755 563-572/com.apps3d.logixuexapp W/System.err: java.lang.Thread.run (Thread.java:1019) で
私が何か間違ったことをしているなら、私に手を貸してください、私はアンドロイド開発jejejのこれについては初めてですありがとう!!