Как показать значения при запуске активности в Android - PullRequest
0 голосов
/ 22 марта 2011

привет, я новый разработчик.В моем приложении я пытаюсь показать широту и долготу места.Когда приложение запускается, автоматически я хочу, чтобы значения отображались. Ниже приведен мой код.

{
  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 ]

1 голос
/ 22 марта 2011

Вы, вероятно, получаете и пустой список здесь: String param = (String)myManager.getProviders(true).get(0); и попытка получить первый из списка приводит к java.lang.IndexOutOfBoundsException попытке добавить <uses-permission android:name="android.permission.ACCESS_GPS" /> и <uses-permission android:name="android.permission.ACCESS_LOCATION " /> к вашему списку.

0 голосов
/ 22 марта 2011

Похоже, вы не получаете правильное местоположение.

Вы включили GPS?

Если вы запускаете его только на эмуляторе, вам нужно указать свое местоположение в DDMS -> Управление эмулятором -> Управление местоположением.

...