| 

.NET C# Java Javascript Exception

2
Hallo zusammen,
ich lese asyncron Daten(Suche mit 2 Suchwörtern als Parameter) ein, was grundsätzlich funktioniert; leider schaffe ich es nicht, den ProgressDialog so zu synchronisieren, dass er mir die Prozentangabe liefert.
Im untenstehenden Code-Stück bleibt die Fortschrittsanzeige stehen .

Kann mir jemand helfen und sagen, was ich ändern muss.
Danke.
protected class LoadingDataTask_And extends AsyncTask<String, Integer, String> {
ProgressDialog loadingDialog;
@Override
protected void onPreExecute() {
loadingDialog = new ProgressDialog(getActivity());
loadingDialog.setTitle("Einen Augenblick bitte");
loadingDialog.setMessage("Loading . . . . . ");

//Bar in percent
loadingDialog.setProgressNumberFormat (null); // %-Progress
loadingDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
loadingDialog.setIndeterminate(true);
loadingDialog.setCancelable(true);
loadingDialog.show();
super.onPreExecute();
}

@Override
protected String doInBackground(String... args) {
db = new ARB_DB(getActivity());
db.open();
try {
String searchparam = args[0];
String searchparam1 = args[1];
int i = 0, count;

do {
crs = db.read_ErweiterteSucheDocument_AND(searchparam, searchparam1);
count = crs.getCount();//Anzahl fuer percentbar
publishProgress((int) (++i * 100 / count));//percentbar
} while (!isCancelled() && crs.moveToNext());

Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}

@Override
protected void onPostExecute(String result) {
getActivity().runOnUiThread(new Runnable() {
public void run() {
String from[] = new String[]{
ARB_DB.COLUMN_TITEL,
ARB_DB.COLUMN_ORT,
ARB_DB.COLUMN_DAT
};
int to[] = new int[]{
//R.id.tv_ID,
R.id.tv_Titel,
R.id.tv_SuchOrt,
R.id.tv_Such_Datum,
};
dataAdapter = new SimpleCursorAdapter(getActivity(),
R.layout.erw_col, crs, from, to, 0);
lvErweitert.setAdapter(dataAdapter);
Toast.makeText(getActivity(), crs.getCount() + " Fundstellen",
Toast.LENGTH_LONG).show();
}
});
loadingDialog.dismiss();
super.onPostExecute(result);
}
}
News:
22.04.2017
Lukos 37 5
3 Antworten
1
Ihr Algorithmus sieht auf den ersten Blick korrekt aus und damit sollte der Fortschrittsbalken aktualisiert werden.
Problematisch scheint mir die Anweisung:
count = crs.getCount();//Anzahl fuer percentbar

zu sein. Ich würde die Anzahl Datensätze außerhalb der Schleife abfragen und eine Zählschleife über den Cursor verwenden. Die Zählvariable kann auch für den Fortschritt verwendet werden.
24.04.2017
edvservice 1,3k 6
0
Good article, but it would be better if in future you can share more about this subject. Keep posting. hotmail account login | hotmail email login | word cookies answers | word cookies game | word cookies game answers
28.04.2017
0
Hallo
danke.
Ich hab's trotzdem anders gelöst; die Zählschleife ist zu langsam, bin insgesamt mit einer While- Schleife zu Rande gekommen
02.05.2017
Lukos 37 5

Stelle deine Database-Frage jetzt!