Jay*_*ayu 0 java android parse-platform
我已将parse方法放在onCreate方法中.但我的问题是如何显示Android Loading ...对话框?
Parse.initialize(this, "a", "b");
ParseQuery query = new ParseQuery("Category");
query.findInBackground(new FindCallback() {
@Override
public void done(List<ParseObject> catObjects, ParseException arg1) {
Log.d("Catlength", String.valueOf(catObjects.size()));
for(int i =0; i<catObjects.size(); i++){
Log.d("lengthName"+String.valueOf(i), String.valueOf(catObjects.get(i).getInt("Id")));
Category category = new Category();
category.Name= catObjects.get(i).getString("CatName");
category.id= catObjects.get(i).getInt("Id");
categories.add(category);
}
if(categories.size()>0){
setListAdapter(new CategoryArrayAdapter(CategoryListActivity.this, R.layout.row_category, categories));
}
else{
Toast.makeText(CategoryListActivity.this, "Our servers are busy. Hit refresh..", 3000).show();
}
}
});
Run Code Online (Sandbox Code Playgroud)
在上面的代码中一切正常,但我无法弄清楚如何显示对话框.
我AsycTask也无法使用,因为解析sdk在后台调用自己的线程,在findInBackground执行完成之前,doInBackground完成Asyc线程.这就是我在主线程中调用它的原因.
结果我总是在我的ArrayList中没有结果.
有人可以赐教.
关于进度对话框,我遇到了同样的情况,尝试了一些技巧,最后宣布了一个ProgressDialog类成员:
protected ProgressDialog proDialog;
Run Code Online (Sandbox Code Playgroud)
然后创建了两个方法:
protected void startLoading() {
proDialog = new ProgressDialog(this);
proDialog.setMessage("loading...");
proDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
proDialog.setCancelable(false);
proDialog.show();
}
protected void stopLoading() {
proDialog.dismiss();
proDialog = null;
}
Run Code Online (Sandbox Code Playgroud)
在得到结果之后,在后台操作之前调用startLoading()并在后台操作中调用stopLoading().
startLoading();
ParseUser.logInInBackground(userName.getText().toString(), hashedPass, new LogInCallback() {
public void done(ParseUser user, ParseException e) {
if (user != null) {
Log.d(Constants.TAG, "User Loged in.");
ParseManager.sCurrentUser = user;
stopLoading();
finish();
} else {
stopLoading();
invalidCreds();
}
}
});
Run Code Online (Sandbox Code Playgroud)
如果你想使用AsyncTask不要调用findInBackground()你可以使用find().你可以在api中查看它https://parse.com/docs/android/api/com/parse/ParseQuery.html#find()
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
2513 次 |
| 最近记录: |