2014-10-14 3 views
2

Я создаю список друзей в Parse, используя массив. У меня возникли проблемы с разбором массива в таблице пользователей. Array ColumnParse.com pull array data

Как я могу получить каждый объект в массиве и отобразить его значение?

ответ

0

Поскольку массив указателей, они не содержат каких-либо данных, таким образом, вам нужно получить объекты, делая что-то вроде этого:

List<ParseObject> objects = user.getList("friendsArray"); 
    if (objects == null) 
     return; 

    ParseObject.fetchAllIfNeededInBackground(objects, new FindCallback<ParseObject>() { 

     @Override 
     public void done(List<ParseObject> objects, ParseException e) { 
      if (e != null) { 
       Log.e(TAG, e.getMessage(), e); 
       return; 
      } 

      // friends are each filled with data 

     } 
    }); 

Как userAndroid правильно говоря, если нет значения в «friendsArray "может вернуть нуль:

Возвращает NULL, если нет такой ключ, или если значение не может быть преобразовано в список

T его можно решить, проверяя, существует ли ключ user.has("friendsArray"), я обновил код, чтобы просто вернуть, если список объектов равен нулю.

+0

Список objects = user.getList ("friendsArray"); это прекратит приложение, если «friendsArray» не имеет значения, даст массив исключений mau не равным нулю. – userAndroid

2

выше ответ завершит приложение, когда массив будет иметь нулевой value.You должны проверить, что значение этого perticular столбца равна нулю или не .Увидь ниже код

List<String> list11 = new ArrayList<String>(); 
ParseQuery<ParseObject> pQuery = ParseQuery.getQuery("TABLE NAME"); 
pQuery.findInBackground(new FindCallback<ParseObject>() { 

    @Override 
    public void done(List<ParseObject> list, ParseException e) { 
     if (e==null) { 
     if (list.size()>0) { 
      ParseObject p = list.get(0); 
      if (p.getList("friendsArray")!=null) { 
       list11 = p.getList("friendsArray"); 
      } 
      else 
      { 
       list11= null; 
      } 
      }} 
        } 
        }); 

использование метода GetList получить данные из столбца массива синтаксического анализа таблицы

now if you want to get all individual data of parsed array ,you can simply apply looping on **list11**. 

Для получения дополнительной информации см следующую ссылку:

ParseObject

How to fetch value from parse class containing Array type column of strings in android

+0

Это какой-то ужасный код: S достаточно простой проверки для null в getList() должно быть достаточно. Я бы скорее прекратил как можно раньше, чтобы избежать вложенного кода и дополнительного запроса - просто чтобы узнать, что списка нет – cYrixmorten