你好我在这里遇到问题
我有一个用于我的观点数据库的添加和编辑表单 它有两个用于坐标的EditText,用于经度和纬度 它有一个按钮来获取当前坐标 如果我单击按钮,两个EditTexts填充坐标 并且用户可以继续插入或编辑数据
我的代码返回java.nullPointerException,我不知道为什么......
这是我的代码:
btn_getkoor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
try{
LocationListener gpsLocation = new MyLocationListener();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, gpsLocation); //new MyLocationListener());
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
final TextView error_text = (TextView) findViewById(R.id.error_text);
if (location != null) {
EditText et_longitude = (EditText) findViewById(R.id.et_longitude);
EditText et_latitude = (EditText) findViewById(R.id.et_latitude);
et_longitude.setText(""+location.getLongitude()); // longitude textview
et_latitude.setText(""+location.getLatitude()); //latitude textview
locationManager.removeUpdates((LocationListener) location);
locationManager = null;
}else{
toastkeun("Terjadi Kesalahan dalam pengambilan koordinat"); //toast function
error_text.setText("Terjadi Kesalahan dalam pengambilan koordinat"); //textview for showing errors
}
}catch(Exception e){
toastkeun(e.toString());
}
}
});
任何解决方案?
我已经设置了清单文件FYI
答案 0 :(得分:0)
很难从您的代码中说出:如果您还没有这样做,请输入以下代码:
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
答案 1 :(得分:0)
LocationManager locationManager;
String bestProvider;
String LOCATION_SERVICE="location" ;
locationManager = (LocationManager) this.getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
//criteria.setAccuracy();
criteria.setAccuracy(Criteria.ACCURACY_FINE); // More accurate, GPS fix.
bestProvider = locationManager.getBestProvider(criteria,true);
location location = locationManager.getLastKnownLocation(bestProvider);
if (location != null) {
EditText et_longitude = (EditText) findViewById(R.id.et_longitude);
EditText et_latitude = (EditText) findViewById(R.id.et_latitude);
et_longitude.setText(""+location.getLongitude()); // longitude textview
et_latitude.setText(""+location.getLatitude()); //latitude textview
// locationManager.removeUpdates((LocationListener) location);
locationManager = null;
}else{
toastkeun("Terjadi Kesalahan dalam pengambilan koordinat"); //toast function
error_text.setText("Terjadi Kesalahan dalam pengambilan koordinat"); //textview for showing errors
}