我已经阅读了很多几乎相同问题的帖子,但它对我的问题没有帮助,问题是我正在尝试创建一个应用程序来不断更新 2 EditTexts 中的信息,用于纬度和经度,使用设备的 GPS。在教程中,我看到他们在 MainActivity 中创建类,所以我尝试做几乎相同的事情,但创建一个新的类文件。当我将信息发送到 MainActivity 时,它会到达 EditText 但似乎那些无法填充我不知道为什么的信息......认为这可能是我尝试实现 AsynkTask 的线程(但我的 android 技能不高),我也有同样的错误......如果有人可以帮助我,我真的会非常棒!我接下来发布代码...
这是主要活动
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: at 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: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) 08-22 18:57:40.755 563-572/com.apps3d.logixuexapp W/System.err: at java.lang.Thread.run(Thread.java:1019)
好吧,如果我做错了什么,请帮帮我,我是 android 开发的新手 jejej 谢谢!