В ParseQueryAdapter Я хочу вернуть отношение объекта, который я запрашиваю. Это то, что у меня есть до сих пор; Я выполняю запрос, получая все цели, созданные текущим пользователем; in public View getItemView Я начинаю получать отношение объекта (цели). Создать ли цикл for и сохранить результаты в массиве? Если да, то как я могу установить текст в списке? Большое спасибо за Вашу помощь!Parse, Android; Отношение.getQuery() в ParseQuery Adapter
public class GoalDetailViewAdapter extends ParseQueryAdapter<ParseObject> {
protected ParseObject mPracticeName;
public GoalDetailViewAdapter(Context context) {
super(context, new ParseQueryAdapter.QueryFactory<ParseObject>() {
public ParseQuery create() {
// Here we can configure a ParseQuery to display
// midwives
ParseQuery<ParseObject> query = ParseQuery.getQuery("goal");
query.whereEqualTo("createdby", ParseUser.getCurrentUser());
return query;
}
});
}
@Override
public View getItemView(ParseObject object, View view, final ViewGroup parent) {
if (view == null) {
view = View.inflate(getContext(), R.layout.activity_goal_detail_view, null);
}
//use midwifefirm as item view/list
super.getItemView(object, view, parent);
// find in layout the practice name
TextView titleTextView = (TextView) view.findViewById(R.id.goalname);
//in the midwifefirm data model, call getPracticename
titleTextView.setText(object.getString("goalname"));
TextView practiceTextView = (TextView) view.findViewById(R.id.practicename);
ParseRelation relation = object.getRelation("practicerelation");
relation.getQuery().findInBackground(new FindCallback() {
@Override
public void done(List list, ParseException e) {
if (e !=null) {
//error
}
else {
}
}
});
/*mAddGoal = (ImageButton) view.findViewById(R.id.addgoal);
mAddGoal.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(parent.getContext(), AddGoal.class);
v.getContext().startActivity(intent);
}
});*/
return view;
Как о показе цели, и при нажатии открыть новую активность/фрагмент, чтобы показать данные отношения? – cYrixmorten
@cYrixmorten на предыдущем экране Я показываю цели; это подробный вид, показывающий больше информации о них –
Но выбор отношений для каждой цели кажется неэффективным, я бы подумал, что вы хотите показать отношения только для одной выбранной цели. В любом случае ... 'отношение.getQuery(). FindInBackground' - это асинхронный вызов, поэтому он должен происходить где-то в другом месте, кроме' getItemView', так как когда 'getItemView' возвращает отображаемое представление,' findInBackground' еще не завершено. – cYrixmorten