Я использую Firebase для отображения данных в текстовом виде. Я использую asynctask для загрузки данных в фоновом режиме, при загрузке я хочу показать загружаемое сообщение, прежде чем данные загрузятся в мое текстовое представление.Как показать загружаемое сообщение при извлечении данных из базы данных Firebase?
Но моя загрузка всплывающее окно данных не отображается. (doinBackground
метод т.е. закончить это работает сразу), и пользователь видит пустые TextViews и только после того, как когда-то, что Firebase загрузку данных.
Как предотвратить это и показать диалог процесса, пока мой текст не будет загружен данными Firebase?
here is my code
<pre>
<code>
public class LastPage extends AppCompatActivity {
TextView title, author, article;
DatabaseReference mDatabase;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_last_page);
title = (TextView) findViewById(R.id.last_page_title);
author = (TextView) findViewById(R.id.last_page_author);
article = (TextView) findViewById(R.id.last_page_article);
mDatabase = FirebaseDatabase.getInstance().getReference();
new LoadFirebaseData().execute();
}
private class LoadFirebaseData extends AsyncTask<Void, Void, Integer>
{
private ProgressDialog Dialog = new ProgressDialog(LastPage.this);
@Override
protected void onPreExecute()
{
try {
Dialog.setMessage("Doing something...");
Dialog.show();
}catch (Exception e)
{
e.printStackTrace();
}
}
@Override
protected void onPostExecute(Integer result)
{
if(result==0)
{
//do some thing
}
// after completed finished the progressbar
Dialog.dismiss();
}
@Override
protected Integer doInBackground(Void... params) {
mDatabase.child("version_1_5").child("title").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String temp = dataSnapshot.getValue(String.class);
title.setText(temp);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
mDatabase.child("version_1_5").child("author").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String temp = dataSnapshot.getValue(String.class);
author.setText(temp);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
mDatabase.child("version_1_5").child("article").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String temp = dataSnapshot.getValue(String.class);
article.setText(temp);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
return 0;
}
}
}
</code>
</pre>
JSON структуру дерева:
Root
Version_1_5
Title:TitleValue
Author:AuthorValue
Article:ArticleValue
Пожалуйста, поделитесь своими JSon дерево –
в моем JSon дерево это было 3 ChildNodes как этот корень/version_1_5/название: valueOfTitle, корень/version_1_5/Aticle: valueOfArticle, корень/version_1_5/автор: valueOfAuthor –