Java 如何将ProgressDialog添加到此对话框
我正在Parse.com中填充一个RecyclerView,由于它位于同一个线程上,我希望添加一个ProgressDialog,直到数据完全加载。但是,困惑的是,我该怎么做呢 以下是迄今为止的代码:Java 如何将ProgressDialog添加到此对话框,java,android,progressdialog,Java,Android,Progressdialog,我正在Parse.com中填充一个RecyclerView,由于它位于同一个线程上,我希望添加一个ProgressDialog,直到数据完全加载。但是,困惑的是,我该怎么做呢 以下是迄今为止的代码: public class BigBoard extends ActionBarActivity { private List<Person> persons; private RecyclerView rv; RVAdapter adapter;
public class BigBoard extends ActionBarActivity {
private List<Person> persons;
private RecyclerView rv;
RVAdapter adapter;
String a,b;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Parse.initialize(this, "app-id", "client-key");
setContentView(R.layout.activity_big_board);
initializeData(); // <----- This is where initialization begins
adapter = new RVAdapter(persons);
rv=(RecyclerView)findViewById(R.id.rv);
LinearLayoutManager llm = new LinearLayoutManager(this);
rv.setLayoutManager(llm);
rv.setHasFixedSize(true);
initializeAdapter();
}
private void initializeData(){
persons = new ArrayList<>();
ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("Credentials");
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> credentialList, ParseException e) {
if (e == null) {
for(int i=0;i<credentialList.size();i++)
{
a=credentialList.get(i).getString("Name");
b=credentialList.get(i).getString("SurName");
persons.add(new Person(a,b));
Log.d("OUT", "So the Val::------> " +a +b);
adapter.notifyDataSetChanged();
}
} else {
Log.d("score", "Error: " + e.getMessage());
}
}
});
//persons.add(new Person("Emma Wilson", "23 years old"));
//persons.add(new Person("Lavery Maiss", "25 years old"));
//persons.add(new Person("Lillie Watts", "35 years old"));
}
private void initializeAdapter(){
rv.setAdapter(adapter);
}
}
因此,我从initializeData方法将数据加载到列表中,是否可以运行ProgressDialog直到完成?或者我应该使用异步任务来实现它?任何帮助都将不胜感激,谢谢 您现在所做的是不正确的,因为您实际上是在UI线程上解析n/w数据。即使您显示ProgressDialog,这也是一种糟糕的用户体验,因为ProgressDialog动画不会平滑,因为您的UI线程在initializeData方法中总是很忙
您应该仅在AsyncTask中使用initializeData方法。同时,从onCreate方法显示ProgressDialog。当initializeData方法完成时,基本上关闭ProgressDialog。对于进度对话框,您可以在需要时启动它,也可以在作业完成时关闭它。