请你能给我一些想法和部分代码,我试图从Parse.com表中获取数据,然后在TextView或TableView中将它显示在我的Android手机上。
我可以设法获得一个值,但表中应该显示三个。
我似乎无法解决我出错的地方!任何帮助将不胜感激......
private void forLoadingView(String c_id) throws ParseException
{
ParseQuery<ParseObject> query = ParseQuery.getQuery("Review");
query.whereEqualTo("c_id", c_id);
query.orderByDescending("rating");
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> reviewList, ParseException e) {
if (e==null && reviewList!= null)
{
for(ParseObject object : reviewList) {
String score = object.getString("rating");
String review = object.getString("review");
String name = object.getString("name");
reviews.setText(review + " " + name + " " + score);
}
}
else
{
Log.d("score", "Error: " + e.getMessage());
}
}
});
编辑:
现在我的代码看起来更像这样:
final List<String> infoList = new ArrayList<String>();
List<String> result = new ArrayList<String>();
ParseQuery<ParseObject> query =
new ParseQuery<ParseObject>("Review");
query.whereEqualTo("c_id", c_id);
query.orderByDescending("rating");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
if (e == null) {
//fill your list or adapter by using objects
for(ParseObject obj : objects) {
infoList.add(object.getString("score"));
infoList.add(object.getString("review"));
infoList.add(object.getString("name"));
}
}
}
});
reviews.setText(infoList.toString());
但它仍然没有打印出来...而是有一个空指针异常,因为(我猜)信息没有被发送到infoList。你有什么想法吗?
谢谢!
答案 0 :(得分:0)
试试这个,它对我有用,让我知道是否也适合你:
List<String> result = new ArrayList<String>();
ParseQuery<ParseObject> query =
new ParseQuery<ParseObject>(yourQuery);
query.whereEqualTo(querykey, queryvalue);
query.addAscendingOrder(orderKey);
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
if (e == null) {
//fill your list or adapter by using objects
for(ParseObject obj : objects) {
result.add(obj.getString(someKey));
}
}
}
});
答案 1 :(得分:0)
将ParseQuery<ParseObject> query = ParseQuery.getQuery("Review");
替换为ParseQuery query = new ParseQuery("Review");
根据Parse Documentation(参考here),ParseQuery.getQuery(class_name)方法检索类中的所有对象。
public static ParseQuery getQuery(String className)为给定的类名创建一个新查询。默认值 没有其他参数的查询将检索所有ParseObjects 提供了班级名称。参数:className - 要的类的名称 检索ParseObjects。返回:一个新的ParseQuery。
如果通过调用ParseQuery
构造函数对象进行实例化,则可以查询ParseQuery()
对象。
答案 2 :(得分:0)
使用此代码
StringBuilder str_infoList = new StringBuilder();
for (String s : infoList)
{
str_infoList.append(s);
str_infoList.append(" ");
}
reviews.setText(str_infoList);