Hallo zusammen,
ich habe ein kleines Problem damit einen ProgressDialog zu öffnen.
Ich schreibe zur Zeit eine App zur Inventarisierung von Firmenhardware. Hierbei habe ich eine Reihe von Listen (Adressbuch, Bezeichnerlisten etc.), die ich gerne Lokal in einer SQLite-Datenbank speichern möchte. Diese Listen möchten ich gerne, sofern der User es wünscht, per Kopfdruck mit der Datenbank synchronisieren. Die Synchronisierung an sich funktioniert gut, allerdings möchte ich gerne während der Synchroniserung einen ProgressDialog öffnen, sodass der User ein gewisses Feedback bekommt und weiß, dass da jetzt gerade im Hintergrund irgendwas passiert...
Dieser Dialog bereitet mir etwas Kopfzerbrechen.
hier kommt der Code:
Beim Öffnen meine Synchronize-View wird activateSetting() aufgerufen.
Hier habe ich nun die Möglichkeit diverse Checkboxen auszuwählen und zu sagen, welche Listen ich neu synchronisieren möchte. Da ich bisher noch mit der Addressliste beschäfigt sind, sind die anderen Fälle noch nicht fertig programmiert. Ich möchte den Dialog gerne öffnen, wenn die Synchronisierung beginnt, ihn während der Synchronisierung updaten - sodass der User weiß, welche Liste gerade synchronisiert wird und ihn anschließend wieder schließen.
Hoffe jemand kann mir helfen.
Danke,
Alex
ich habe ein kleines Problem damit einen ProgressDialog zu öffnen.
Ich schreibe zur Zeit eine App zur Inventarisierung von Firmenhardware. Hierbei habe ich eine Reihe von Listen (Adressbuch, Bezeichnerlisten etc.), die ich gerne Lokal in einer SQLite-Datenbank speichern möchte. Diese Listen möchten ich gerne, sofern der User es wünscht, per Kopfdruck mit der Datenbank synchronisieren. Die Synchronisierung an sich funktioniert gut, allerdings möchte ich gerne während der Synchroniserung einen ProgressDialog öffnen, sodass der User ein gewisses Feedback bekommt und weiß, dass da jetzt gerade im Hintergrund irgendwas passiert...
Dieser Dialog bereitet mir etwas Kopfzerbrechen.
hier kommt der Code:
Java:
public void activitySetting() {
radioButtonNo = ((RadioButton) this.findViewById(R.id.radioButtonOfflineModeNo));
radioButtonYes = ((RadioButton) this.findViewById(R.id.radioButtonOfflineModeYes));
checkBoxAddressbook = ((CheckBox) this.findViewById(R.id.checkBoxAddressbook));
checkBoxNotebook = ((CheckBox) this.findViewById(R.id.checkBoxNotebook));
checkBoxMonitor = ((CheckBox) this.findViewById(R.id.checkBoxMonitor));
checkBoxPc = ((CheckBox) this.findViewById(R.id.checkBoxPc));
checkBoxPrinter = ((CheckBox) this.findViewById(R.id.checkBoxPrinter));
buttonSave = ((Button) this.findViewById(R.id.buttonSave));
buttonSave.setBackgroundColor(Color.DKGRAY);
buttonSave.setTextColor(Color.WHITE);
buttonSave.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
final Boolean workInProgress = true;
c1 = getApplicationContext();
db = new DBHandler(c1);
//check what is marked
boolean activateOffline = (radioButtonNo.isChecked()) ? false : true;
//get marked checkboxe
if (checkBoxAddressbook.isChecked()) {
ProgressDialog pd = showAndDismissDialog(true, null);
List<Person> result = HttpConnector.getInstance(c1).getAdressbook(c1, "AddressbookPerson");
db.deleteAddressbook();
for (Person e : result) {
db.addPerson(e);
}
showAndDismissDialog(false, pd);
} else if (checkBoxMonitor.isChecked()) {
//start method for synchronizing the monitorlist
} else if (checkBoxNotebook.isChecked()) {
//start method for synchronizing the notebooklist
} else if (checkBoxPrinter.isChecked()) {
//start method for synchronizing the printerlist
} else if (checkBoxPc.isChecked()) {
//start method for synchronizing the pclist
}
db.close();
c1 = null;
}
});
}
public ProgressDialog showAndDismissDialog(boolean param, ProgressDialog dialog) {
//param = true means show - param = false means dismiss
final boolean mode = param;
final ProgressDialog pd;
if (dialog == null) {
pd = new ProgressDialog(Synchronize.this);
} else {
pd = dialog;
}
if (mode) {
// Set progress dialog style spinner
pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
// Set the progress dialog background color
pd.getWindow().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#FFD4D9D0")));
pd.setIndeterminate(false);
// Set the progress dialog title and message
pd.setTitle("Synchronisation wird durchgeführt");
pd.setMessage("Adressbuch.........");
// Finally, show the progress dialog
pd.show();
return pd;
} else {
pd.dismiss();
return null;
}
}
Beim Öffnen meine Synchronize-View wird activateSetting() aufgerufen.
Hier habe ich nun die Möglichkeit diverse Checkboxen auszuwählen und zu sagen, welche Listen ich neu synchronisieren möchte. Da ich bisher noch mit der Addressliste beschäfigt sind, sind die anderen Fälle noch nicht fertig programmiert. Ich möchte den Dialog gerne öffnen, wenn die Synchronisierung beginnt, ihn während der Synchronisierung updaten - sodass der User weiß, welche Liste gerade synchronisiert wird und ihn anschließend wieder schließen.
Hoffe jemand kann mir helfen.
Danke,
Alex
Zuletzt bearbeitet von einem Moderator: