1

我正在开发一个 Android 项目。我需要使用 Android 1.6 或更高版本。

我的项目正在运行,但现在它向我显示了一些关于对话框的警告,例如

"The method dismissDialog(int) from the type Activity is deprecated"
"The method showDialog(int) from the type Activity is deprecated", etc.

所以我想“更新”我的项目来解决这些警告。

我已经阅读并制作了一些测试项目来了解 Fragments 和 DialogFragment。我已经创建了自己的 ProgressDialog,我想在我的真实项目中使用它,但是我遇到了一些问题。

public class MyProgressDialog extends DialogFragment {

public MyProgressDialog(){

}

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

    Context context = getActivity();

    ProgressDialog dialog = new ProgressDialog(context);

    Resources resources = context.getResources();

        String message = resources.getText(R.string.wait).toString();

    dialog.setMessage(message);
    dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);

    return dialog;
    }
}

在我的项目早期,我创建了ProgressDialog,然后在onPrepareDialog()方法中,我调用了AsyncTask连接服务器、下载数据等。然后在onPostExecuteAsyncTask 中,我关闭了ProgressDialog并启动了新的 Activity。但现在我不能这样做,因为onPrepareDialog已弃用。

在 Activity 的 onPrepareDialog 上调用 ActionAsyncTask

@Override
protected void onPrepareDialog(int id, Dialog dialog) {     
    switch(id){

        case Constants.PROGRESS_DIALOG:
                                    new ActionAsyncTask().execute();
                                    break;
    }
}

ActionAsyncTask 的 onPostExecute

@Override
protected void onPostExecute(Integer result) {
    dismissDialog(Constants.PROGRESS_DIALOG);
}

如何解决这个问题?这样做的正确方法是什么?我想为此编写最好的代码,最有效的代码。

谢谢。

4

0 回答 0