Как я могу надуть MapView из протектора, не являющегося пользовательским интерфейсом - PullRequest
0 голосов
/ 21 июля 2011


Мое приложение использует фрагменты HoneyComb, где моя левая боковая панель имеет вид списка, а правая боковая панель имеет MapView с некоторыми TextViews. Сначала я записал вид карты в map_fragment_right_side.xml, что привело к зависанию экрана на долгое время, поэтомуЯ решил напрасно просматривать представление карты во время выполнения в AsyncTask напрасно. Код выглядит следующим образом

class LoadMapTask extends AsyncTask<String, Void, Boolean>
{

    MapView inflatedMapView = null;

    @Override
    protected void onPreExecute() {

        progressbar.setVisibility( View.VISIBLE );

    }


    @Override
    protected Boolean doInBackground(String... params)
    {


        try{

        inflatedMapView = new MapView(getActivity(),getActivity().getResources().getString(R.string.mapkey));

        addMapViewhere.addView(inflatedMapView);


        inflatedMapView.getController().setCenter(getPoint(Double.valueOf(latitude),Double.valueOf(longitude)));

        inflatedMapView.getController().setZoom(17);

        inflatedMapView.setBuiltInZoomControls(true);

        sites=new SitesOverlay();

        inflatedMapView.getOverlays().clear();

        inflatedMapView.getOverlays().add(sites);

        }catch (Exception e) {
         e.printStackTrace();
        }


        return true;

    }

    @Override
    protected void onPostExecute(Boolean res)
    {
        if( progressbar != null )
        {
            progressbar.setVisibility( View.GONE );
        }






    }

}

Я сомневаюсь, возможно ли накачать представление карты из потока, не являющегося пользовательским интерфейсом. Я буду рад, если кто-тоПредложите мне правильный способ сделать это. Я не хочу, чтобы экран завис, пока карта не загрузится.
спасибо,
Ганеш

1 Ответ

2 голосов
/ 21 июля 2011

Накачайте это от onPreExecute() или onPostExecute()

...