我在获取服务器的数据时尝试显示ProgressDialog
。
我有一个listview用户我正在加载的内容,我使用AsyncTask
来获取我的数据,并在preExecute()
中创建了一个processDialog。我想问题是我的列表在DialogFragment中。
如果我在ProgressDialog
中创建onCreateView()
,我也无法看到它,但它在另一个对话框下方。我不知道是否可以优先考虑对话,因为当我对活动做同样的事情时,我没有任何问题。
public class ListUsersDialog extends AbstractDialog {
private ListView lv;
private CustomUsersAdapter adapter;
private List<UserResponse> usersList;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.dialog_list_users, container);
//Se consulta por la lista de los usuarios, los parametros que se pasan es por si se quiere customizar el resultado en el futuro.
AsyncGUI asyncDialogs = new AsyncGUI(this);
asyncDialogs.execute(new RequestMessage(ConstantsRooms.GET_USERS, ((AbstractActivity)getActivity()).getUserName(), room));
getDialog().setTitle("Invitar a usuarios");
// Listview Data
lv = (ListView) view.findViewById(R.id.list_view_users);
inputSearch = (EditText) view.findViewById(R.id.inputSearch);
checkFilterFriend = (CheckBox) view.findViewById(R.id.checkFilterFriend);
usersList = new ArrayList<UserResponse>();
adapter = new CustomUsersAdapter(usersList, (AbstractActivity)getActivity());
lv.setAdapter(adapter);
...
}
这是我与服务器连接并创建ProgressDialog
public class AsyncGUI extends
AsyncTask<RequestMessage, Object, Void> {
private Updatable gui;
private ProgressDialog pDlg;
public AsyncGUI(Updatable gui) {
this.gui = gui;
}
.....
@Override
protected void onProgressUpdate(Object... values) {
gui.updateGUI(values[0]);
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
if (pDlg != null){
pDlg.dismiss();
}
}
@Override
protected void onPreExecute() {
showProgressDialog();
}
/*
* Muestra una pantalla de espera mientras se hace el procesamiento de datos..
*/
private void showProgressDialog() {
if (gui != null){
pDlg = new ProgressDialog(gui.getContext());
pDlg.setMessage("Espere por favor..");
pDlg.setProgressDrawable(gui.getContext().getWallpaper());
pDlg.setProgressStyle(ProgressDialog.STYLE_SPINNER);
pDlg.setCancelable(false);
pDlg.show();
}
}
}