计算Parse.com数据 - Java

时间:2015-07-09 20:16:41

标签: java android parse-platform

我从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

现在这是我的问题。 void done&lt; if statments getData 我有预定义的数字。

                        if (simpleID <= 13) {

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

如果我在Parse.com数据库中添加项目,那么在我的代码中就不会读取该项目,因为硬编码的数字。

  

如何计算我拥有的SimpleID数量,并将它们保存为int?

1 个答案:

答案 0 :(得分:0)

以下是您的代码的阅读方式。

获取与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();
            }
        }
    }
});
}