在android中使用ParseQuery的结果

时间:2016-01-10 14:38:09

标签: android android-studio parse-platform

想要了解如何在查询中使用/将ParseQuery的结果放入String []。

以下是代码:

public class OptionDialogFragment extends DialogFragment implements
    AdapterView.OnItemClickListener {

    String[] listitems = {here is where i want the result from the query};

    ListView mylist;
    TextView chosenProperty;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.option_dialog_content, null, false);
        mylist = (ListView) view.findViewById(R.id.list);

        getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
        return view;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        ParseQuery<PropertyTypes> pt = new ParseQuery<PropertyTypes>(PropertyTypes.class);
        pt.whereExists("propertyType");
        pt.orderByAscending("propertyType");
        pt.findInBackground(new FindCallback<PropertyTypes>() {
            @Override
            public void done(List<PropertyTypes> pList, ParseException e) {
                if (e == null) {
                    for(int i = 0; i < pList.size(); i++){
                        // Want to take the result from here and put it in the String array above
                        // String array "listitems"
                    }
                } else {
                    e.printStackTrace();
                }
            }
        });

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, listitems);
        mylist.setAdapter(adapter);
        mylist.setOnItemClickListener(this);
    }
}

2 个答案:

答案 0 :(得分:0)

如果List是String,那么会有一个直接的方法,但是,在你的情况下,它将取决于PropertyType类包含的内容。以下是代码的示例:

     listItems = new String[pList.size()];  

       for(int i = 0; i < pList.size(); i++){
               listItems[i]=pList.get(i).getStringObject();
            } 

因此pList.get(i)将为您提供PropertyTypes类对象,您应该使用返回String的PropertyTypes中的getter方法替换getStringObject()

上面声明你的成员变量listItems时,不要初始化它

String[] listItems;

答案 1 :(得分:0)

  1. 选择了一个用于解析ParseDB响应的JSON库。 (std JSON或Jackson都是好文章)

    {“results”:[{“ACL”:{“_ User.objectId”

  2. 更改'done()'中现有的'for'迭代,以处理JSON ARRAY,它是您在上面看到的'结果'的子项

  3. ArrayNode array = (ArrayNode) root.path("results");
     int i = 0;
     for (JsonNode node : array) {
      i++;
    
    1. 数组的Foreach元素从“PropertyTypes”
    2. 获取所需列的字符串值
        

      YourCollection   myCollection.add(node.path( “PTyp.property1”)getTextValue());

      最后...

        

      myCollection.toArray()

      上面使用'jackson'lib进行Json解析

      gradle依赖

        

      编译文件('libs / jackson-core-lgpl-1.9.2.jar')       编译文件('libs / jackson-mapper-lgpl-1.9.2.jar')