【发布时间】:2014-04-13 22:59:52
【问题描述】:
我正在开发一个有 2 个类的 Android 应用。扩展 Activity 的 Game,以及扩展 View 的 GameView。
当游戏加载时,它会将内容视图设置为 GameView,它只是一个使用画布显示游戏的绘图类。
我正在尝试在 Game 类中创建一个 ProgressDialog,它会在完成某个操作后显示一个微调器,因为这需要很长时间才能完成。到目前为止,我有以下内容:
setContentView(R.layout.activity_game);
ProgressDialog pd = new ProgressDialog(this);
pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
pd.setMessage("Calculating hint");
pd.show();
AsyncTask<String[][], Void, SudokuSquare> nextSquareThread = new GetNextSquare().execute(puzzleNumbers);
next = nextSquareThread.get();
pd.dismiss();
setContentView(gameView);
我的 AsyncTask 类看起来像这样:
private class GetNextSquare extends AsyncTask<String[][], Void, SudokuSquare> {
private ProgressDialog dialog = new ProgressDialog(Game.this);
@Override
protected void onPreExecute() {
this.dialog.setMessage("Finding next number");
this.dialog.show();
}
@Override
protected SudokuSquare doInBackground(final String[][]... args) {
try {
SudokuAdvancedSolver solver = new SudokuSolver(args[0]);
return solver.getOneValue();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Override
protected void onPostExecute(final SudokuSquare result) {
if (dialog.isShowing()) {
dialog.dismiss();
}
}
}
目前我有两个 ProgressDialog,一个在 AsyncTask 内部,一个在外部。哪一个是正确的?此外,微调器根本没有显示。我忽略了什么导致这种情况?
【问题讨论】:
标签: java android android-layout android-asynctask