2015-08-13 5 views
0

Здравствуйте, я новичок в Android и Parse.com. Я пытаюсь получить массив из моего класса ParseUser и установить его в Spinner. Я следил за this Link, но это не работает для меня.Не удается получить массив из пользователя Parse

Я пытаюсь обновить Spinner course когда я выбираю другой пункт в Spinner faculty_initial в этом коде

Spinner faculty_initial; //another spinner 
Spinner course; 
ArrayAdapter<String> courseAdapter; 

faculty_initial.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
     //getting the selected item from the faculty_initial spinner 
     selectedInitial = initial.getSelectedItem().toString().trim(); 

     ParseQuery<ParseUser> query = ParseUser.getQuery(); 
     query.whereEqualTo("username", selectedInitial); 
     query.getFirstInBackground(new GetCallback<ParseUser>() { 
      @Override 
      public void done(ParseUser pu, ParseException e) { 
       if (e == null) { 
        JSONArray arr = pu.getJSONArray("Taken_Courses"); 
        ArrayList<String> stringArrayList = new ArrayList<String>(); 
        synchronized(stringArrayList) { 
         if (arr != null) { 
          for (int i = 0; i < arr.length(); i++) { 
           try { 
            stringArrayList.add(arr.get(i).toString()); 
           } catch (Exception exp) { 
            e.printStackTrace(); 
           } 
          } 
         } 
         courseAdapter = new ArrayAdapter<String>(student_to_faculty.this, android.R.layout.simple_spinner_dropdown_item, stringArrayList); 
         courseAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
         course.setAdapter(courseAdapter); 
         Toast.makeText(student_to_faculty.this, " Everything is alright in course spinner ", Toast.LENGTH_LONG).show(); 
        }//synchronized 
       } else { 
        Toast.makeText(student_to_faculty.this, "new : " + e.toString() + " ", Toast.LENGTH_LONG).show(); 
       } 
      } 
     }); 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> parent) { 
    } 
});     

Но этот код дает мне

com.parse.exception: Результаты не найдены для запроса.

ответ

0

Вы использовали неправильный запрос, чтобы получить пользователя. Вы должны использовать следующий способ запроса одного пользователя. Попробуйте это и посмотрите.

ParseQuery<ParseUser> query = ParseUser.getQuery(); 
query.whereEqualTo("username", selectedInitial); 
query.getFirstInBackground(new GetCallback<ParseUser>() { 
    public void done(ParseUser pu, ParseException e) { 
       if (e == null) { 
        ArrayList<String> stringArrayList = (ArrayList<String>)pu.get("Taken_Courses"); 
        courseAdapter = new ArrayAdapter<String>(student_to_faculty.this, android.R.layout.simple_spinner_item, stringArrayList); 
        courseAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
        course.setAdapter(courseAdapter); 
        Toast.makeText(student_to_faculty.this, " Everything is alright in course spinner ", Toast.LENGTH_LONG).show(); 
       } else { 
        Toast.makeText(student_to_faculty.this, "new : " + e.toString() + " ", Toast.LENGTH_LONG).show(); 
       } 
    } 
}); 

Запрос, который вы использовали, получает ParseUser для данного объектаИнтер пользователя. Это можно использовать, когда у вас есть идентификатор объекта желаемого пользователя.

Надеюсь, это поможет.

+0

Он также не работает. Теперь я использую массив JSON. я бы опубликовал свой обновленный код ??? –

+0

De Alwis Senevira Я обновил свой код и приложил его выше. Любая помощь будет оценена по достоинству. –

+0

Вы отлаживали и видели, где возникает исключение? –

Смежные вопросы