我正在尝试找出如何在ParseObject
中找到自定义ParseQueryAdapter<>
的位置,以便我可以设置微调器的位置或检查我的Android项目中的检查列表的行
我目前正在使用ParseQueryAdapter<Vendor>
扩展Vendor
扩展ParseObject
的自定义适配器。我还有Item
扩展ParseObject
与Vendor
相关联。在此特定示例中,如果我要编辑Item
,我希望在微调器中显示先前选择的Vendor
。我想设置由自定义ParseQueryAdapter<Vendor>
支持的微调器的选择。在我整合Parse之前,我使用的是ArrayAdapter<CharSequence>
,可以这样做:
String vendorName = Vendor.getName();
int position = adapter.getPosition(vendorName);
spinner.setSelection(position);
我在想我可以获得Vendor
对象的位置,就像我在数组中使用String
名称时一样,但ParseQueryAdapter
没有getPosition
方法。我正在考虑制作一个自定义方法,但我却不知道如何找到Vendor
的位置。我也在想我的.isEqualTo(Vendor vendor)
课程中可能需要Vendor
方法。
答案 0 :(得分:1)
您需要查看ParseQuery适配器,执行以下操作:
public class CustomListAdapter extends BaseAdapter {
private final YourParseAdapter adapter;
public CustomListAdapter(final Context context) {
this.adapter = new YourParseAdapter(context);
adapter.registerDataSetObserver(new DataSetObserver() {
@Override
public void onChanged() {
super.onChanged();
notifyDataSetChanged();
}
});
}
public void reloadObjects() {
adapter.loadObjects();
}
// Customize the layout by overriding getItemView
@Override
public View getView(int i, View v, ViewGroup viewGroup) {
View result = adapter.getView(i, v, viewGroup);
// HERE YOU HAVE THE VIEW GENERATED BY PARSE AND THE ITEM POSITION
return result;
}
@Override
public int getCount() {
return adapter.getCount();
}
@Override
public Object getItem(int i) {
return adapter.getItem(i);
}
@Override
public long getItemId(int i) {
return adapter.getItemId(i);
}
}
答案 1 :(得分:-1)
我想出了我需要做的事情。我没有使用ParseQueryAdapter<Vendor>
,而是从单独的查询中获取List<Vendor>
,然后使用了ArrayAdapter<Vendor>
,以便我可以使用adapter.getPosition(obj)
方法。由于ArrayAdapter
使用的.indexOf(Obj)
又使用了.equals(Obj)
,因此我添加到了我的Vendor
对象中:
@Override
public boolean equals(Object o) {
return this.getObjectId().equals(((Vendor) o).getObjectId());
}
我只需要有一种方法可以比较我的自定义对象。