为什么我不能仅使用" location"来获得经度和自由度。类'内置方法?

时间:2016-01-15 10:49:28

标签: java android

我要做的是创建一个类的实例" 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

2 个答案:

答案 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();


            }