Spinner adapter issue in Android 5.0

╄→гoц情女王★ 提交于 2019-12-06 10:13:06

I don't have experience with ParseQueryAdapter, but from reading up on it, it seems you could do something like this.

First, create your own class that extends ParseQueryAdapter, and override getViewTypeCount():

public class MyParseAdapter extends ParseQueryAdapter<ParseObject> {

  public MyParseAdapter(Context context, QueryFactory<ParseObject> clazz){        
        super(context, clazz); 
  }

  @Override
  public int getViewTypeCount() {
     return 1;
  }
}

Then, just every place you have ParseQueryAdapter in your code, replace it with MyParseAdapter:

public void regionSpinnerSetup() {
    MyParseAdapter.QueryFactory<ParseObject> factory = new MyParseAdapter.QueryFactory<ParseObject>() {
        public ParseQuery create() {
            ParseQuery query = new ParseQuery("Region");
            return query;
        }
    };

    regionAdapter = new MyParseAdapter<ParseObject>(getActivity(),
            factory);
    regionAdapter.setTextKey("name");
    regionSpinner.setAdapter(regionAdapter);
    regionSpinner.setSelection(1);
    regionSpinner.setOnItemSelectedListener(new RegionSpinnerListener());
}

public void CategorySpinnerSetup() {
    MyParseAdapter.QueryFactory<ParseObject> factory = new MyParseAdapter.QueryFactory<ParseObject>() {
        public ParseQuery create() {
            ParseQuery query = new ParseQuery("Category");
            return query;
        }
    };

    categoryAdapter = new MyParseAdapter<ParseObject>(getActivity(),
            factory);
    categoryAdapter.setTextKey("name");
    categorySpinner.setAdapter(categoryAdapter);
    categorySpinner.setSelection(1);
    categorySpinner
            .setOnItemSelectedListener(new CategorySpinnerListener());
}

class RegionSpinnerListener implements Spinner.OnItemSelectedListener {
    @Override
    public void onItemSelected(AdapterView parent, View v, int position,
                               long id) {
        // TODO Auto-generated method stub

        ParseObject theSelectedObject = regionAdapter.getItem(position);
        Log.e("ABC", "Name is : " + theSelectedObject.getString("name") + " objectId is : " + theSelectedObject.getObjectId());
        regionobject = theSelectedObject;
    }

You cannot solve this because in lollypop this problem is pertaining. So this app can run on API 19 or below.

If you are developing this application, then only you can do a small change in project. Change your adapter.getViewTypeCount() to 1. That is the only solution.

Here you can read for more reference

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!