繁体   English   中英

计算Parse.com数据-Java

[英]Counting Parse.com Data - Java

我正在从Parse.com数据库中提取代码,并将其存储到ArrayList中。 然后,我将ArrayList转换为String数组,以便将其放入ListView。 除了一个例外,一切都很好,很花哨。 让我演示给你看。

这是我从Parse.com数据库中提取代码的方式。

ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("myClassName");

query.whereEqualTo("Parse.com Column", /**int inside the column*/ );
query.findInBackground(new FindCallback<ParseObject>() {
    @Override
    public void done(List<ParseObject> list, ParseException e) {
        if (e == null) {
            for (int i = 0; i < list.size(); i++) {
            //My Code Here
            }
        }
    }
});

上面的代码将搜索Parse.com中的每一列,并查找您在该列中定义的int。 找到对象后,您可以从该对象中提取。

现在这是我用该代码编写的内容:

public void getData() {
    ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("Merchandize");

    query.whereEqualTo("simpleID", simpleID);
    query.findInBackground(new FindCallback<ParseObject>() {
        @Override
        public void done(List<ParseObject> list, ParseException e) {
            if (e == null) {
                for (int i = 0; i < list.size(); i++) {

                    items.add(list.get(i).getString("item"));
                    Log.i("KOTB", list.get(i).getString("item"));

                    itemDesc.add(list.get(i).getString("description"));
                    simpleID++;
                    if (simpleID <= 13) {

                        Log.i("KOTB", "re-running getData()");
                        getData();
                    } else  if (simpleID > 14){
                        arrayAdapterMethod();
                    }

                }
            }
        }
    });
}

public void arrayAdapterMethod() {
    Log.i("KOTB", "==arrayAdapterMethod()==");
    Log.i("KOTB","Converting");
    String array[] = new String[items.size()];
    for (int j = 0; j < items.size(); j++) {
        array[j] = items.get(j);
        Log.e("KOTB", array[j]);
    }

    for (String k: array) {
        Log.w("KOTB [NOTE]", k);
    }

    ArrayAdapter<String> myAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, array);
    setListAdapter(myAdapter);
}

它在名为simpleID的列中搜索Parse.com数据,一旦找到int,便在simpleID内进行搜索,并运行代码。 万一您想看一下我的Parse.com表,可以在这里进行:

http://gyazo.com/62d4b37f531c54bf65089958e5af11fc

现在这是我的问题。 我的if语句void中完成了<getData我有预定义的数字。

                        if (simpleID <= 13) {

                        Log.i("KOTB", "re-running getData()");
                        getData();
                    } else  if (simpleID > 14){
                        arrayAdapterMethod();
                    }

如果我在Parse.com数据库中添加项目,则由于硬编码的数字,它不会在我的代码中读取该项目。

如何计算我有多少个SimpleID,并将其保存为int?

这是您的代码的读取方式。

获取所有与int simpleID匹配的simpleID

query.whereEqualTo("simpleID", simpleID);

我将假设您已将simpleID定义为int simpleID = 0;

返回的列表将是“ simpleID”等于您的this.simpleID所有行。

query.findInBackground(new FindCallback<ParseObject>() {
    @Override
    public void done(List<ParseObject> list, ParseException e) {
        if (e == null) {
            for (int i = 0; i < list.size(); i++) {

                items.add(list.get(i).getString("item"));
                Log.i("KOTB", list.get(i).getString("item"));

                itemDesc.add(list.get(i).getString("description"));
                simpleID++;

如果simpleID小于您的?max? simpleID,然后使用新的simpleID再次运行getData

                if (simpleID <= 13) {

                    Log.i("KOTB", "re-running getData()");
                    getData();
                } else  if (simpleID > 14){
                    arrayAdapterMethod();
                }

            }
        }
    }
});

似乎您正在遍历表中的所有项目并将它们放入字符串数组中。 即使将this.simpleID设置为初始化值,您仍将从该simpleID值及更高值获取该表的所有行。 我的建议是使用whereGreaterThanOrEqualTo("simpleId", simpleID)查询。 该查询的结果将允许您删除simpleId增量,而仅具有一个要迭代的列表。 我想这样的事情。

public void getData() {
ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("Merchandize");

query.whereGreaterThanOrEqualTo("simpleID", simpleID);
query.findInBackground(new FindCallback<ParseObject>() {
    @Override
    public void done(List<ParseObject> list, ParseException e) {
        if (e == null) {
            for (int i = 0; i < list.size(); i++) {

                items.add(list.get(i).getString("item"));
                Log.i("KOTB", list.get(i).getString("item"));

                itemDesc.add(list.get(i).getString("description"));
            }
            arrayAdapterMethod();
            }
        }
    }
});
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM