我爲我的應用程序啓動了一個ProgressDialog,聲明「正在連接」。因此,爲我的Firebase數據庫和onDataChange添加監聽器我想更改ProgressDialog的文本,例如「我已經連接,現在我正在下載數據」。稍後循環遍歷來自數據庫的迭代結果並隱藏ProgressDialog。更新AddValueListener上的ProgressDialog,從Firebase獲取數據
我的問題是ProgressDialog showns,但我不能讓它更新或更改消息。沒有。
我正在嘗試使用RunOnUIThread,但沒有任何效果。
你能幫我達到我的目標嗎,或者說我不能做到這一點。
DialogHandler.showLoadingDialog(InitActivity.this, R.string.connecting,
"Connecting", true, false);
FDatabaseManager.getInstance().addListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
MyObject obj;
InitActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
DialogHandler.updateLoadingDialog(R.string.downloading, "¡Ready! We're downloading data. Please wait.");
}
});
for (DataSnapshot i : dataSnapshot.getChildren()) {
obj= i.getValue(MyObject.class);
if (SQLiteManager.getInstance(InitActivity.this).existOn(SQLiteContract.TABLE_OBJS, obj.getId())) {
ContentValues values = new ContentValues();
values.put(SQLiteContract.ObjColumns.FIELD_LATITUDE, obj.getCoordinates().getLatitude());
values.put(SQLiteContract.ObjColumns.FIELD_LONGITUDE, obj.getCoordinates().getLongitude());
SQLiteManager.getInstance(InitActivity.this).insert(SQLiteContract.TABLE_OBJ, values);
}
}
DialogHandler.dismissLoadingDialog();
}
@Override
public void onCancelled(DatabaseError databaseError) {
DialogHandler.dismissLoadingDialog();
}
}, Constants.DB_OBJS);
這是ProgressDialog的代碼。
public static void showLoadingDialog(final Context context, final int title, final String message, final boolean indeterminate, final boolean cancelable) {
dismissLoadingDialog();
loadingDialog = new ProgressDialog(context);
loadingDialog.setTitle(title);
loadingDialog.setMessage(message);
loadingDialog.setIndeterminate(indeterminate);
loadingDialog.setCancelable(cancelable);
loadingDialog.show();
}
public static void updateLoadingDialog(final int title, final String message) {
if (loadingDialog != null && loadingDialog.isShowing()) {
loadingDialog.setTitle(title);
loadingDialog.setMessage(message);
}
}
當我試圖讓這對任何人的方法,工作正常,但是當我試圖讓在火力地堡數據庫,而不是作品的監聽器。
謝謝你的幫助。