I create 2 classes(Meal, Restaurant) which extend ParseObject, and create 2 custom adapters(BottomFragmentMealAdapter, RestaurantAdapter). I tried to do whatever I made in BottomFragmentMealAdapter(it works) for RestaurantAdapter. But it doesn't work.
Here is my log:
FATAL EXCEPTION: main Process: com.bogazici.menumizer, PID: 14739 java.lang.ClassCastException: com.parse.ParseObject cannot be cast to com.bogazici.menumizer.Restaurant at com.bogazici.menumizer.RestaurantAdapter.getItemView(RestaurantAdapter.java:17) at com.parse.ParseQueryAdapter.getView(ParseQueryAdapter.java:547) at android.widget.AbsListView.obtainView(AbsListView.java:2347) at android.widget.ListView.makeAndAddView(ListView.java:1864) at android.widget.ListView.fillDown(ListView.java:698) at android.widget.ListView.fillFromTop(ListView.java:759) at android.widget.ListView.layoutChildren(ListView.java:1659) at android.widget.AbsListView.onLayout(AbsListView.java:2151) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:581) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1627) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.support.design.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1034) at android.support.design.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:744) at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42) at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1180) at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:757) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579) at android.widget.FrameLayout.onLayout(FrameLayout.java:514) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557) at android.widget.LinearLayout.onLayout(LinearLayout.java:1466) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579) at android.widget.FrameLayout.onLayout(FrameLayout.java:514) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557) at android.widget.LinearLayout.onLayout(LinearLayout.java:1466) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579) at android.widget.FrameLayout.onLayout(FrameLayout.java:514) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2086) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1843) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767) at android.view.Choreographer.doCallbacks(Choreographer.java:580) at android.view.Choreographer.doFrame(Choreographer.java:550) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5257) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(Zyg
Here is my RestaurantAdapter
public class RestaurantAdapter extends ParseQueryAdapter<Restaurant> {
    //top line is 17
    private AlphaAnimation buttonClick;
    public RestaurantAdapter(Context context, final String filter_edit, final String filter_city, final String filter_region,0 final int filter_sort) {
       super(context, new ParseQueryAdapter.QueryFactory<Restaurant>() {
           public ParseQuery<Restaurant> create() {
               // Here we can configure a ParseQuery to display
               // only top-rated meals.
               ParseQuery query = new ParseQuery("Restaurant");
               query.whereContains("city", filter_city);       
    if(!filter_region.equals("*Hepsi*")&&!filter_region.equals("*All*"))
                   query.whereContains("region",filter_region);
               if(filter_edit.equals("nothing")){
               }else{
                   query.whereStartsWith("restaurant", filter_edit);
               }
               switch(filter_sort){
                   case 0:
                       query.orderByAscending("averagePrice");
                       break;
                   case 1:
                       query.orderByDescending("averagePrice");
                       break;
                   case 2:
                       query.orderByAscending("restaurant");
                       break;
                   case 3:
                       query.orderByDescending("averagePoint");
                       break;
                   default:
                       query.orderByAscending("restaurant");
                       break;
               }
               return query;
           }
       });
    }
    @Override
    public View getItemView(Restaurant restaurant, View v, ViewGroup parent) {
        //buttonClick = new AlphaAnimation(1F, 0.8F);
        if (v == null) {
            v = View.inflate(getContext(), R.layout.restaurant_list_item, null);
        }
        super.getItemView(restaurant, v, parent);
        final String str_call = restaurant.getPhone();
        TextView locationTextView = (TextView) v.findViewById(R.id.restaurant_location);
        String str_location= restaurant.getRegion()+", "+restaurant.getCity();
        locationTextView.setText(str_location);
        TextView nameTextView = (TextView) v.findViewById(R.id.restaurant_name);
        nameTextView.setText(restaurant.getName());
        TextView pointTextView = (TextView) v.findViewById(R.id.restaurant_point);
        String str_point = String.valueOf(restaurant.getAveragePoint());
        pointTextView.setText(str_point);
        TextView priceTextView = (TextView) v.findViewById(R.id.restaurant_averageprice);
        String str_price = String.valueOf(restaurant.getAveragePrice())+" TL";
        priceTextView.setText(str_price);
        ImageView callImage = (ImageView) v.findViewById(R.id.restaurant_call);
        callImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View w) {
                // w.startAnimation(buttonClick);
                Intent intent = new Intent(Intent.ACTION_DIAL);
                intent.setData(Uri.parse("tel:"+str_call));
                w.getContext().startActivity(intent);
            }
        });
        TextView mapText = (TextView) v.findViewById(R.id.restaurant_map);
        mapText.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View w) {
                //w.startAnimation(buttonClick);
            }
        });
        return v;
    }
}
                you have to check two things
Ensure that your subclass has a public default (i.e. zero-argument) constructor. You must not modify any ParseObject fields in this constructor.
and
Call ParseObject.registerSubclass(YourClass.class) in your Application constructor before calling Parse.initialize().
Make sure you registered your parse class in your application
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With