-1

私のコードはここにあります

protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    progress = new ProgressDialog(this);
    progress.setTitle("Loading");
    progress.setMessage("Wait while loading...");
    progress.show();
    Log.i("Spinner", "Starts");
    String trip_id = trips.get(position);
    FeedParser parser = FeedParserFactory.getParser(ParserType.ANDROID_SAX);
    stopTimes = parser.parseStopTime().get(trip_id);
    Collections.sort(stopTimes,StopTime.StopTimeComparator);
    stops = parser.parseStop();
    List<String> stopList = new ArrayList<String>(stopTimes.size());
    for (StopTime st: stopTimes) {
        stopList.add(stops.get(st.getStop_id()).getStop_name() + st.getDeparture_time().toString());
    }
    Log.i("Spinner", "Dismissed");
//      progress.dismiss();
    Intent viewStops = new Intent(this, StopActivity.class);
    viewStops.putStringArrayListExtra("stops_to_parse", (ArrayList<String>) stopList);
    this.startActivity(viewStops);
}

リストをクリックすると、プログラムが他のものをロードしている間、ロードを示すスピナーを表示し、それを閉じて別のアクティビティに切り替えたいと思います。

しかし、リストをクリックすると、スピナーを表示せずにロードするだけで、すべてのロードが完了すると、スピナーが突然点滅して別のビューに変わります。

どうやら、プログラムは終了するまでスピナーを表示できない他のものをロードするのに忙しいようです。

プログラムが他のものを正しく計算している間にスピナーを表示する方法は?

4

2 に答える 2

0

おそらくAsyncTaskを使用する必要があります

于 2013-04-14T09:10:22.863 に答える