Ich habe ein Fragment, das, wenn eine Taste gedrückt wird, ein Fortschrittsdialog zeigen und eine Methode ausführen sollte, die eine AsyncTask enthält, aber wenn ich die Schaltfläche drücke, erscheint der Fortschrittsdialog nicht auf dem Bildschirm, sondern der Async-Task wird ausgeführt. Dies ist der Code des FragmentsFortschrittsanzeige erscheint nicht
public class ParcheggiaFragment extends Fragment {
private Button button;
ProgressDialog progressDialog1;
SharedPreferences prefs;
HttpGetNoleggio httpGetNoleggio;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
final View layout = inflater.inflate(R.layout.fragment_parcheggia, container, false);
button = (Button) layout.findViewById(R.id.button);
prefs = this.getActivity().getSharedPreferences(Keys.SHARED_PREFERENCES, Context.MODE_PRIVATE);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
progressDialog1.show();
int a = checkNoleggioCompletato();
FragmentTransaction fragmentTransaction = getActivity().getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.frame_principale, new ResultFragment());
fragmentTransaction.commit();
}
});
return layout;
}
private int checkNoleggioCompletato() {
final int id = prefs.getInt(Keys.ID_UTENTE, -1);
Integer[] noleggio;
int idNoleggio = -1;
try {
String str = "here i put the url that i have to use" + id;
URL url = new URL(str);
noleggio = httpGetNoleggio.execute(url).get();
idNoleggio = noleggio[0];
int idBici = noleggio[1];
int noleggioResult = idNoleggio;
} catch (MalformedURLException | ExecutionException | InterruptedException e) {
e.printStackTrace();
}
return idNoleggio;
}
@Override
public void onStart() {
progressDialog1 = new ProgressDialog(this.getActivity());
progressDialog1.setIndeterminate(true);
super.onStart();
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
httpGetNoleggio = new HttpGetNoleggio(this.getActivity());
}
@Override
public void onResume() {
super.onResume();
}
}
Der Code scheint richtig, und ich kann nicht verstehen, warum die ProgressDialog nicht angezeigt. ist eine weitere Klasse, die AsyncTask erweitert und die doInBackground-Methode implementiert
Wo entfernen Sie den Dialog. Es kann sein, dass die Aufgabe so schnell abgeschlossen wird, dass der Dialog nicht einmal mehr angezeigt wird. – Shaishav
@Shaishav die Aufgabe dauert 7 Sekunden, um abzuschließen. Der ProgressDialog erscheint nicht in diesem Fragment, sondern erscheint im nächsten Fragment 'ResultFragment' –
Ich verstehe nicht, Sie sagten *" der Fortschritt Dialog erscheint nicht auf dem Bildschirm "*. Starten Sie das 'ResultFragment' nicht nur beim Klicken auf die Schaltfläche? – Shaishav