如何在android中启动活动时显示值

时间:2011-03-22 10:00:56

标签: java android android-activity launch

您好我是一名新开发者。在我的应用程序中,我试图显示一个地方的纬度和经度。当应用程序启动时,我自动希望显示值以下是我的代码。

{
  setContentView(R.layout.main);

        if(entered)
        {
            loadCoords();
        }
        Coords coords = loadCoords();


    }

    private Coords loadCoords() 
    {
        TextView latText = (TextView) findViewById(R.id.latText);
        TextView lngText = (TextView) findViewById(R.id.lngText);
        LocationManager myManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
        if(myManager != null){
            //List list = myManager.getAllProviders();
            String param = (String)myManager.getProviders(true).get(0);
            Location loc = myManager.getLastKnownLocation(param); 
            if(loc != null){
                Double latPoint = loc.getLatitude();
                Double lngPoint = loc.getLongitude();
                    try {
                        latText.setText(latPoint.toString());
                        lngText.setText(lngPoint.toString());
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
            }
             else
                    Log.e("AndroidMaps ","Error: Location  is null");
        }
        else
            Log.e("AndroidMaps ","Error: Location Manager is null");
        return null;

    }
}

但是当我尝试在设备中运行它时,我的应用程序崩溃了。

以下是logcat

中显示的错误
ERROR/AndroidRuntime(6311): Uncaught handler: thread main exiting due to uncaught exception
ERROR/AndroidRuntime(6311): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gis.ss/com.gis.ss.main}: java.lang.IndexOutOfBoundsException: Invalid location 0, size is 0
ERROR/AndroidRuntime(6311): Caused by: java.lang.IndexOutOfBoundsException: Invalid location 0, size is 0

任何人都可以解释我的错误是什么...... plzzz

2 个答案:

答案 0 :(得分:1)

你可能会在这里找到空列表:  String param = (String)myManager.getProviders(true).get(0);并尝试获取列表中的第一个导致java.lang.IndexOutOfBoundsException尝试添加 <{1}}和<uses-permission android:name="android.permission.ACCESS_GPS" />到您的清单。

答案 1 :(得分:0)

看起来你没有获得有效的位置。

你打开过你的GPS吗?

如果您只在模拟器上运行它,那么您必须在DDMS中设置您的位置 - &gt;模拟器控制 - &gt;位置控制。