Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从Parse.com获取数据并在android上显示_Java_Android_Database_Parse Platform - Fatal编程技术网

Java 从Parse.com获取数据并在android上显示

Java 从Parse.com获取数据并在android上显示,java,android,database,parse-platform,Java,Android,Database,Parse Platform,请你给我一些想法和可能的部分代码,我正在尝试从Parse.com表格中获取数据,并在我的android手机上以文本视图或表格视图的形式显示它 我可以设法得到一个值,但是,表中应该显示三个值 我就是想不出我哪里出了问题!任何帮助都将不胜感激 private void forLoadingView(String c_id) throws ParseException { ParseQuery<ParseObject> query = P

请你给我一些想法和可能的部分代码,我正在尝试从Parse.com表格中获取数据,并在我的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());
                }


                }
            });
private void for loadingview(字符串c_id)引发异常
{
ParseQuery=ParseQuery.getQuery(“审阅”);
查询:whereEqualTo(“c_id”,c_id);
query.orderByDescending(“评级”);
findInBackground(新的FindCallback(){
已完成公共作废(列表审阅列表,Parsee异常){
如果(e==null&&reviewList!=null)
{
for(ParseObject对象:reviewList){
字符串分数=object.getString(“评级”);
String review=object.getString(“review”);
字符串名称=object.getString(“名称”);
reviews.setText(review+“”+name+“”+分数);
}
}
其他的
{
Log.d(“分数”,“错误:+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());
final List infoList=new ArrayList();
列表结果=新建ArrayList();
解析查询=
新查询(“审查”);
查询:whereEqualTo(“c_id”,c_id);
query.orderByDescending(“评级”);
findInBackground(新的FindCallback(){
@凌驾
公共void done(列出对象,parsee异常){
如果(e==null){
//使用对象填充列表或适配器
for(ParseObject对象:对象){
add(object.getString(“score”);
add(object.getString(“review”);
add(object.getString(“name”);
}
}
}
});
reviews.setText(infoList.toString());
但是它仍然没有打印出来…相反,有一个空指针异常,因为(我猜)信息没有被发送到信息列表。你有什么想法吗


谢谢!

试试这个,它对我有用,如果对你也有用,请告诉我:

    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));
               }
            }
        }
    });
List result=new ArrayList();
解析查询=
新建ParseQuery(yourQuery);
查询。whereEqualTo(querykey,queryvalue);
query.addAscendingOrder(orderKey);
findInBackground(新的FindCallback(){
@凌驾
公共void done(列出对象,parsee异常){
如果(e==null){
//使用对象填充列表或适配器
for(ParseObject对象:对象){
add(obj.getString(someKey));
}
}
}
});
ParseQuery query=ParseQuery.getQuery(“Review”);
替换为
ParseQuery query=new ParseQuery(“Review”);

根据Parse文档(请参阅),ParseQuery.getQuery(class_name)方法检索类中的所有对象

公共静态ParseQuery getQuery(字符串 className)为给定的类名创建新查询。默认值为 不带其他参数的查询将检索 提供的类名。参数:className-要创建的类的名称 检索的ParseObjects。返回:一个新的ParseQuery

而如果通过调用
ParseQuery()
构造函数来实例化对象,则可以查询
ParseQuery
对象。

使用此代码

StringBuilder str_infoList = new StringBuilder();
    for (String s : infoList)
    {
        str_infoList.append(s);
        str_infoList.append(" ");
    }

reviews.setText(str_infoList);

谢谢你的帮助!所以我把我的代码改成了你的,然后
if(e==null){for(ParseObject对象:messages){//使用messages String score=object.getString(“评级”);String review=object.getString(“审查”)填充适配器;String name=object.getString(“name”);reviews.setText(review+“”+name+“”+score);etc
这仍然只打印了一件事,但当我系统输出审阅时,它在终端中显示了所有值,您知道如何将其显示在屏幕上吗?如果我没有弄错,您对查询结果感到满意,但在从ParseObject提取数据时遇到问题吗?是的,我对查询感到满意。变量审阅中有三个它要保存的项目。但是,当我要求它设置textView时,它只显示最后一个项目。您知道如何让它显示所有三个项目吗?我建议您从返回的对象(或创建的字符串)获取日志若要确保这与textview的输出结果不同,请确保您的textview已正确初始化。因此,日志确实显示了正确的结果。textview的唯一问题是,为了访问变量评级、查看和命名,它需要位于查询框中。否则,我将如何初始化它?需要做什么这意味着?查询。whereEqualTo(“c_id”,c_id);您不是在这里查询特定的id吗?这三个对象是否共享相同的c_id?是的,所有对象共享相同的c_id,但不起任何作用。查询得到的值是正确的,它们只是没有在TextView中正确显示。请确保TextView reviews对forLoadingView方法是全局的,并尝试像这样设置文本s reviews.setText(object.getString(“review”)+“”+object.getString(“name”)+“”+object.getString(“评级”);