2012-03-05 14 views
1

私はサービスからの応答を取得して表示するためにアプリケーションを実装しています。私は2つのタイプの応答をservice.Whenから取得するために2つのテキストビューを使用しました。 UIがハングしています。私はビジー状態のダイアログを表示したいと思います。応答があったら、その進行状況ダイアログを閉じます。リストビューへの応答でビューを更新しています。次のように 私は、コードを実装している:アンドロイドでサービスからの応答を得るまで進行状況ダイアログを取得するには?

textView1.setOnClickListener(new OnClickListener() { 

@Override 
public void onClick(View v) { 
waitProgreess = ProgressDialog.show(ShoutGetMsgsScreen.this, "Please wait", "Loading..."); 
resultFromService = new ParseXml().convertMessages(new Model().getMessages("0")); 
lst.setAdapter(new CustomeAdapter(ShoutGetMsgsScreen.this, resultShoutMessage)); 

    if(resultFromService .size()>5){ 

        waitProgreess.dismiss(); 
       } 
    } 
     }); 

上記の実装から、私は進捗ダイアログを表示することができ、ビューが更新されると、その後どのように私は、進行状況ダイアログを閉じることができますか?

すべてのボディは、私を助けてください...この目的のために

+0

うんにAsncTaskまたはハンドラを使用しますあなたのUIスレッドからそのようなことをしてください! – Soham

+0

私は使用ハンドラやAsncTask.pleaseに関する知識がなく、この場合サンプルをいくつか与えることができますか? –

答えて

1
private class GetDATA extends AsyncTask<Void, Void, Void> 
{ 
    ProgressDialog pd; 
    @Override 
    protected void onPreExecute() { 
     pd = ProgressDialog.show(Activity.this, "", getString("loding..."), true, false); 
     super.onPreExecute(); 
    } 

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


resultFromService = new ParseXml().convertMessages(new Model().getMessages("0")); 
return null; 
    } 

    @Override 
    protected void onPostExecute(Void result) { 
     super.onPostExecute(result); 
     if (pd != null && pd.isShowing()) 
      pd.dismiss(); 
     } 

lst.setAdapter(new CustomeAdapter(ShoutGetMsgsScreen.this, resultShoutMessage)); 

    } 
} 

コール: -

(new GetDATA()).execute(); 
1

Android - AsyncTask。基本的なチュートリアルを見てください。同じニーズのためにonPreExecute()doInBackground()およびonPostExecute()を持っています。

0

これには2つの選択肢があります。

  1. Handeler

    ハンドラ、すなわちのhandleMessage()コールバックメソッドを有します。

  2. AsyncTask

    AsyncTaskは3つのコールバックメソッドをonPreExecute()、doInBackground()を持ち、onPostExecute()

あなたがこののいずれかのいずれかを選択することができます。

+0

は、使用ハンドラでいくつかのサンプルを提供することができます –