0

ここに私の単純な AsyncTask があります:

class MyTask extends AsyncTask<String, Void, String> {

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

        String page = null;
        try {
            page = new Communicator().executeHttpGet(params[0]);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return page;
    }

これに単純なスピナーを表示するプログレス バーを追加するにはどうすればよいですか? コードを試すたびに、コードが壊れたり、パラメーターが間違って配置されたりします。

編集:

class MyTask extends AsyncTask<String, Void, String> {

    ProgressDialog myPd_ring = null;

    @Override
    protected void onPreExecute() {


        myPd_ring.show();

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

        String page = null;
        try {
            page = new Communicator().executeHttpGet(params[0]);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return page;

    }

    @Override
    protected void onPostExecute(String result) {
        myPd_ring.dismiss();        
        super.onPostExecute(result);
    }

}

これを試してもまだうまくいきません!実際、アプリケーションは現在、標準入力にさえ応答していません! ありがとう !

4

2 に答える 2

1
@Override
        protected void onPreExecute() {

            myPd_ring  = new ProgressDialog (YourActivityName.this);
            myPd_ring.setMessage("Forza Roma");
            myPd_ring.show();

        }

また、クラスを次のように変更します

class MyTask extends AsyncTask<String, Integer, String>

関数でonPostExecuteは、最初に次のようにスーパー関数を呼び出す必要があります。

 @Override
    protected void onPostExecute(String result) {        
        super.onPostExecute(result);
        myPd_ring.dismiss();
}

onPostExecuteさらに、ビジネス ロジックでは、 not onで new AsyncTask を呼び出す必要があります。doInBackground

于 2013-07-02T19:30:24.110 に答える