0

HttpManager を使用して URL から文字列を取得しようとしています

public String request(Context context, String url){
        page_requested = "empty";
        HttpQuery query = new HttpQuery(context, mHttpClient);
        query.execute(url);
        return page_requested;
    }

MainActivityで使用します

public void onClick(View v) {
        Toast.makeText(MainActivity.this, HttpManager.getInstance().request(MainActivity.this, "http://myurl"), Toast.LENGTH_SHORT).show();
    }

しかしpublic String request、クエリが実行されるのを待たずに「空」を返しますが、トーストを表示するのに10秒待つと、正しい値が返されます。

期待値を表示する最良の方法は何ですか?

4

1 に答える 1

0

AsyncTask を使用してテキストを表示します。これは効率的な方法だと思います..操作のロード中にプログレスバーを表示できます。

public class DisplayString extends AsyncTask<Void, Void, Void>
{  
@Override
protected void onPreExecute()
{  
    super.onPreExecute();
    dialog.setMessage("Please wait...");
    dialog.setCancelable(false);
    dialog.show();

} 
@Override 
protected void onProgressUpdate(Void... values) {
    super.onProgressUpdate(values);
    // Things to be done while execution of long running operation is in progress. For example updating ProgessDialog
 }

@Override 
protected void onPostExecute(Void result)

{ 
      //Post Execute
       dialog.cancel();
     //Display your string here
}
@Override
protected Void doInBackground(Void... params) {

  // Your operation..Dont Edit Any Views here

    return null;
}

}

それが役に立てば幸い

于 2013-03-27T17:14:18.967 に答える