Я пытаюсь показать диалоговое окно прогресса при щелчке элемента списка, но диалоговое окно прогресса никогда не появляется.
Удивительно, но mProgressdialog.isShowing () имеет значение true. Пожалуйста, дайте некоторое представление о проблеме, если кто-либо сталкивался с подобными проблемами.
adapter.setOnItemClickListener(new Adapter.ListClickListener() {
@Override
public void onItemClick(int position, View v) {
//Some computations done.
if (ProjectsFragment.this.getActivity() != null) {
UniversalProgressDialog.showSimpleProgressDialog(getActivity(),"Loading","Loading...",false);
android.support.v4.app.FragmentManager fragmentManager = ProjectsFragment.this.getActivity().getSupportFragmentManager();
android.support.v4.app.FragmentTransaction ft = fragmentManager.beginTransaction();
ft.replace(R.id.sample_content_fragment, new AgendaFragment(), "AGENDA");
ft.commit();
}
}
}
}
});
Исходный код для UniversalProgressDialog: -
public class UniversalProgressDialog {
private static ProgressDialog mProgressDialog;
public static void showSimpleProgressDialog(Context context, String title,
String msg, boolean isCancelable) {
try {
if (mProgressDialog == null) {
mProgressDialog = ProgressDialog.show(context, title, msg);
mProgressDialog.setCancelable(false);
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
mProgressDialog.setIndeterminate(true);
mProgressDialog.setCanceledOnTouchOutside(false);
}
if(mProgressDialog.isShowing()){
mProgressDialog.dismiss();
}
if (!mProgressDialog.isShowing()) {
mProgressDialog.show();
}
} catch (IllegalArgumentException ie) {
ie.printStackTrace();
} catch (RuntimeException re) {
re.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void removeSimpleProgressDialog() {
try {
if (mProgressDialog != null) {
if (mProgressDialog.isShowing()) {
mProgressDialog.dismiss();
mProgressDialog = null;
}
}
} catch (IllegalArgumentException ie) {
ie.printStackTrace();
} catch (RuntimeException re) {
re.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Что я пробовал?
Попытка перемещения диалогового окна прогресса с кодом на
Пробовал перемещать фрагмент кода перехода в другой поток, как показано ниже: -
private class PerformFragmentTransition extends Thread {
public PerformFragmentTransition() {
}
@Override
public void run() {
android.support.v4.app.FragmentManager fragmentManager = ProjectsFragment.this.getActivity().getSupportFragmentManager();
android.support.v4.app.FragmentTransaction ft = fragmentManager.beginTransaction();
ft.replace(R.id.sample_content_fragment, new AgendaFragment(), "AGENDA");
ft.commit();
}
}
Также пробовал: -
getActivity().runOnUiThread(new Runnable(){
public void run() {
UniversalProgressDialog.showSimpleProgressDialog(getActivity(),"Loading","Loading...",false);
}
});
Также пробовал: -
В соответствии с одним из комментариев, я закомментировал код перехода фрагмента, и появился диалог прогресса.
Если вообще это дает некоторую подсказку о том, как решить проблему,
и больше информации: -
Я закрою диалог прогресса в следующем фрагменте после его загрузки.