1

私の Android アプリケーションでは、最初のアクティビティで REST API を呼び出し、資格情報を使用してアイテムのリストを取得します。任意のアイテムをクリックすると、アイテム ID が渡され、インテントを使用して 2 番目のアクティビティが呼び出されます。この 2 番目のアクティビティは、渡された ID を使用して REST API を呼び出し、その ID のサブ項目のリストを表示します。

最初のアクティビティで Progress Dialog を使用しています。これはうまくいっています。サブ項目リストが表示されなくなるまで、この進行状況ダイアログも 2 番目のアクティビティで継続する必要があります。

現在、2 番目のアクティビティが開始されると進行状況ダイアログが消え、サブ リストが取得されなくなるまで空白の画面が表示されます。

2番目のアクティビティで進行状況ダイアログを続行し、サブリストが表示されたときに閉じる方法を教えてもらえますか?

4

6 に答える 6

2

これはハックです:

ActivityA.java で、ProgressDialog pd を static として宣言します。

public static ProgressDialog pd;

ActivityB.java で静的参照をActivityA.pd使用してから、以下のコードを使用します。

if (ActivityA.pd != null) {
            if (ActivityA.pd.isShowing()) {
                ActivityA.pd.dismiss();
            }
            else {
                Log.e(Vars.TAG, "It is NOT SHOWING");
            }
        }
于 2012-10-09T00:31:24.170 に答える
1

AsyncTask を使用する必要があります

class FetchTask extends AsyncTask<Object, Object, Object>
{
    ProgressDialog progress;

    @Override
    protected void onPreExecute() 
    {
         super.onPreExecute();
         progress=ProgressDialog.show(Context, "", "Loading...");
    }

    @Override
    protected Object doInBackground(Object... params) 
    {

        // fetch your data here 

         return null;
    }

    @Override
    protected void onPostExecute(Object result) 
    {
        super.onPostExecute(result);
        progress.dismiss();
    }
}

onCreate次に、このタスクをasで実行できます

new FetchTask().execute();
于 2012-07-16T10:59:26.353 に答える
0

私はむしろあなたのケースでフラグメントを使用したいと思います(必要に応じてサポートライブラリを使用)。次に、この2つのアクティビティをフラグメントに変更し、(親)アクティビティに対してshowProgressDialogメソッドとhideProgressDialogメソッドを作成します。進行状況ダイアログは同じアクティビティ内にあるため常に表示されますが、フラグメントにはアクティビティと同じように完全に分離されたロジックがあります。

于 2012-07-16T09:52:54.893 に答える
0

これは、2 番目のアクティビティの onCreate に関する回答表示ダイアログに対する唯一の解決策です。

あなたが言ったように-2番目のアクティビティが開始すると進行状況ダイアログが消え、サブリストがフェッチされなくなるまで空白の画面が表示されます。解決策は、リスト内のデータが完全に設定されたときにダイアログを閉じることです。アダプターをリストに設定した後ダイアログを閉じると、空白の画面が表示されなくなります。

于 2012-07-16T09:23:29.723 に答える
0

あなたがそれを2つの活動として持っているなら。最善の方法は、2 番目のアクティビティにも進行状況ダイアログを表示することです。2 番目のアクティビティが開始されるとすぐに、最初のアクティビティがバックグラウンドに移行するためです。後ろに移動しました。最善の方法は、2 番目のアクティビティに進行状況ダイアログを表示し、サブリストを取得しようとしているときに表示することです。サブリストの UI が設定された後、進行状況ダイアログを閉じます。

于 2013-08-30T15:13:17.720 に答える
0

使用できるオプションは 2 つあります。

  1. 最初のダイアログが閉じられたときにダイアログを停止し、2 番目のメソッドActivityで再度表示できます。AkashG がコメントで述べたように。onCreateActivity
  2. 2 番目の への移行中にダイアログを表示したい場合は、2つではなくActivity1 つを使用し、Activityそのレイアウトを変更して、別の を呼び出す代わりにActivity2 番目のレイアウトを使用することができます。ただし、2 つの機能を 1 つに実装するため、これは複雑になる可能性があります。ActivityActivityActivities
于 2012-07-16T08:54:25.310 に答える