2015-04-30 4 views
2

Я пытаюсь использовать ParseQueryAdapter в своем проекте и не имел никакого результата отображения результатов.ParseQueryAdapter, не показывающий результаты

Моя цель - получить данные из ParseUser. Итак, моя модель расширяет ParseUser:

Так что у меня модель:

@ParseClassName("Midwifefirm") 
public class Midwifefirm extends ParseUser { 



    public Midwifefirm() { 
     // A default constructor is required. 
    } 

    //practice name 
    public String getPracticeName() { 
     return getString("practicename"); 
    } 

    public void setPracticeName(String title) { 
     put("title", title); 
    } 

    //education 

    public String getEducation() { 
     return getString("education"); 
    } 

    public void setEducation(String education) { 
     put("education", education); 
    } 

    //years in practice 

    public String getYearsinPractice() { 
     return getString("yearsinpractice"); 
    } 

    public void setYearsinPractice(String yearsinpractice) { 
     put("yearsinpractice", yearsinpractice); 
    } 

    //practice philosophy 

    public String getPracticePhilosophy() { 
     return getString("practicephilosophy"); 
    } 

    public void setPracticePhilosophy(String practicephilosophy) { 
     put("practicephilosophy", practicephilosophy); 
    } 

Адаптер находится здесь; Я думаю, проблема может быть здесь с моим запросом:

public class CustomMidwifeAdapter extends ParseQueryAdapter<Midwifefirm> { 


    public CustomMidwifeAdapter(Context context) { 
     //query using Midwifefirm class, to get list of midwives 
     super(context, new ParseQueryAdapter.QueryFactory<Midwifefirm>() { 
      public ParseQuery<Midwifefirm> create() { 

       ParseQuery query = new ParseQuery("Midwifefirm"); 
       query.whereEqualTo("userType", "midwife"); 


       return query; 

      } 


     }); 

    } 

    @Override 
    public View getItemView(Midwifefirm midwifefirm, View view, ViewGroup parent) { 

     if (view == null) { 
      view = View.inflate(getContext(), R.layout.activity_midwife_result_list, null); 

     } 

     //use midwifefirm as item view/list 

     super.getItemView(midwifefirm, view, parent); 


     // find in layout the practice name 
     TextView titleTextView = (TextView) view.findViewById(R.id.practicename); 

     //in the midwifefirm data model, call getPracticename 
     titleTextView.setText(midwifefirm.getPracticeName()); 

     // Add education view 
     TextView EducationView = (TextView) view.findViewById(R.id.education); 

     EducationView.setText(midwifefirm.getEducation()); 

     // Add yearsexperience view 
     TextView ExperienceView = (TextView) view.findViewById(R.id.yearsinpractice); 
     ExperienceView.setText(midwifefirm.getYearsinPractice()); 

     //Add practice philosophy view 
     TextView PracticePhilosophyView = (TextView) view.findViewById(R.id.practicephilosophy); 
     PracticePhilosophyView.setText(midwifefirm.getPracticePhilosophy()); 


     return view; 
    } 

} 

И вот мой ListView;

public class MidwifeResultList extends ListActivity { 


    private ParseQueryAdapter<Midwifefirm> mainAdapter; 

    private CustomMidwifeAdapter midwifeListAdapter; 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     //set display to listview, empty 
     getListView().setClickable(false); 




     //initialize main ParseQueryAdapter 
     mainAdapter = new ParseQueryAdapter<Midwifefirm>(this, Midwifefirm.class); 
     mainAdapter.setTextKey("practicename"); 
     mainAdapter.setTextKey("education"); 
     mainAdapter.setTextKey("yearsinpractice"); 
     mainAdapter.setTextKey("practicephilosophy"); 


     // Initialize the subclass of ParseQueryAdapter 
     midwifeListAdapter = new CustomMidwifeAdapter(this); 


     setListAdapter(mainAdapter); 

     // Initialize ListView and set initial view to mainAdapter 
     // listView = (ListView) findViewById(R.id.lvMidwives); 
     // listView.setAdapter(mainAdapter); 
     // mainAdapter.loadObjects(); 

    } 





} 

Возможно, я установил это неправильно. Спасибо за понимание.

ответ

1

Просто взглянув на то, что вы предоставили, я думаю, что это связано с вашим запросом. Вы запрашиваете ключ «userType», но не кажется, что ваш подкласс Midwifefirm имеет этот ключ.

EDIT

Чтобы ответить на ваш комментарий вы получите бы все акушерки объекты, используя запрос, как это:

ParseQuery<Midwifefirm> query = ParseQuery.getQuery(Midwifefirm.class); 
/* add any additional constraints to your query here */ 
query.findInBackground(new FindCallback<Midwifefirm>() { 
    @Override 
    public void done(List<Midwifefirm> results, ParseException e) { 

    } 
} 

Я считаю, что Анализировать имеет ограничение на количество объектов, которые вы можете получить с один запрос из 100, поэтому вам, возможно, придется искать способы, которые вы можете увеличить, чтобы соответствовать вашим потребностям.

+0

Если бы я хотел просто перечислить всех пользователей, у которых есть данные, которые я определил в модели акушерки, как бы указать это в запросе? –

+0

query.whereEqaulTo ("columnName", "yourCriteria"); –

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