**更新: (以下を参照)** 数日間探し回っていますが、これに対する明確な答えが見つかりません。可能だと言う人もいれば、達成できないと言う人もいます。私はこれに夢中になっています。
私が欲しいのは、 AsyncTaskTask にプログレスバーを外部クラスに表示させることだけです。これを行うには、メイン クラスでわかるようにコンテキストを渡します。しかし、私が何をしようとしても得られNullPointerException
ます。
実用的なコード例は大歓迎です。ありがとうございました
ちなみにAndroid 2.2を使用しています。
主要:
import android.app.Activity;
import android.os.Bundle;
public class AsyncDemo extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new AsyncClass(this).execute();
}
}
AsyncClass.java
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.SystemClock;
public class AsyncClass extends AsyncTask<Void, String, Void> {
private Context context;
ProgressDialog dialog = new ProgressDialog(context);
public AsyncClass(Context cxt) {
context = cxt;
}
@Override
protected void onPreExecute() {
dialog.setTitle("Please wait");
dialog.show();
}
@Override
protected Void doInBackground(Void... unused) {
SystemClock.sleep(2000);
return (null);
}
@Override
protected void onPostExecute(Void unused) {
dialog.dismiss();
}
}
更新: フォローアップの質問があります: 上記のコードを使用して、onPostExecute メソッドからメイン クラスに値を返すことは可能ですか? (初心者になってすみません)私はこのようなことを試しました:
String result = new AsyncClass(this).execute();
次に、文字列を返すメソッド。しかし、私はそれをすることができません:
Type mismatch: cannot convert from AsyncTask<String,Void,Void> to String
この問題に取り組むにはどうすればよいですか? ありがとう。