我要做的是创建一个类的实例" location
"和调用方法 - " getLongitude()
"和" getLatitude()
"获得经度和经度并使用" toast"但我收到了错误。
这是我的代码和错误:
CODE
package autogenie.maptrial;
import android.content.Context;
import android.location.Location;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Location loc;
Double lon,lat;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lon=loc.getLongitude();
lat=loc.getLatitude();
Context context = getApplicationContext();
String s=String.valueOf(lon)+" "+String.valueOf(lat);
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context,s, duration);
toast.show();
}
}
错误:
java.lang.RuntimeException:无法启动活动 ComponentInfo {autogenie.maptrial / autogenie.maptrial.MainActivity}: 显示java.lang.NullPointerException
和
显示java.lang.NullPointerException at autogenie.maptrial.MainActivity.onCreate
答案 0 :(得分:0)
在该代码中,您只定义了将返回null的Location对象,因为您已使用
启动它final LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
有关详细信息,请参阅此处 How to get Latitude and Longitude of the mobile device in android?
答案 1 :(得分:0)
更新此内容:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
loc = new Location("");
lon=loc.getLongitude();
lat=loc.getLatitude();
Context context = getApplicationContext();
String s=String.valueOf(lon)+" "+String.valueOf(lat);
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context,s, duration);
toast.show();
}