CoverFlow не отображает изображение

I am using coverflow to display my images but when i run my project it crash and gives following error..может ли кто-нибудь помочь мне в этом?ниже приведен мой фрагмент кода любая помощь будет appriciated

: Фатальное исключение: main
Процесс: com.образец.daysheft.dpc, PID: 21087
Ява.ленг.NullPointerException: попытка вызвать метод интерфейса ‘ int android.штучка.Адаптер.getCount () ‘ для ссылки на нулевой объект
на него.moondroid.coverflow.комплектующие.пользовательский интерфейс.стеклотара.FeatureCoverFlow.dispatchDraw(FeatureCoverFlow.java: 471)
на android.вид.Вид.updateDisplayListIfDirty(View.java:15185)
на android.вид.Вид.draw (View.java: 15964)

CoverflowActivity.Ява

public class CoverFlowActivity extends ActionBarActivity {

    private FeatureCoverFlow mCoverFlow;
    private CoverFlowAdapter mAdapter;
  //  private ArrayList<GameEntity> mData = new ArrayList<>(0);
    private TextSwitcher mTitle;
    private String productlanding_url;
    private String ProductID;

    private ProgressDialog pDialog;
    private ArrayList<PackListModel> categorylist;
    private ArrayList<PackSizeModel> subcat_list;
    private PackListModel cm;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_coverflow);

         ProductID=getIntent().getStringExtra("Product_Id");

        productlanding_url=Globaldata.APP_URL+"ProductLanding";
        pDialog = new ProgressDialog(this);
        // Showing progress dialog before making http request
        pDialog.setMessage("Loading...");
        pDialog.show();

        GetProductLanding();

       /* mData.add(new GameEntity(R.drawable.tesss, R.string.title1));
        mData.add(new GameEntity(R.drawable.tesss, R.string.title2));
        mData.add(new GameEntity(R.drawable.tesss, R.string.title3));
        mData.add(new GameEntity(R.drawable.tesss, R.string.title4));*/

       /* mTitle = (TextSwitcher) findViewById(R.id.title);
        mTitle.setFactory(new ViewSwitcher.ViewFactory() {
            @Override
            public View makeView() {
                LayoutInflater inflater = LayoutInflater.from(CoverFlowActivity.this);
                TextView textView = (TextView) inflater.inflate(R.layout.item_title, null);
                return textView;
            }
        });
        Animation in = AnimationUtils.loadAnimation(this, R.anim.slide_in_top);
        Animation out = AnimationUtils.loadAnimation(this, R.anim.slide_out_bottom);
        mTitle.setInAnimation(in);
        mTitle.setOutAnimation(out);
*/
        /*mAdapter = new CoverFlowAdapter(CoverFlowActivity.this,categorylist);
        mAdapter.setData(categorylist);*/
        mCoverFlow = (FeatureCoverFlow) findViewById(R.id.coverflow);
     //   mCoverFlow.setAdapter(mAdapter);

        mCoverFlow.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
              /*  Toast.makeText(CoverFlowActivity.this,
                        getResources().getString(mData.get(position).titleResId),
                        Toast.LENGTH_SHORT).show();*/
            }
        });

        mCoverFlow.setOnScrollPositionListener(new FeatureCoverFlow.OnScrollPositionListener() {
            @Override
            public void onScrolledToPosition(int position) {
               // mTitle.setText(getResources().getString(mData.get(position).titleResId));
            }

            @Override
            public void onScrolling() {
                //mTitle.setText("");
            }
        });

    }

    public void GetProductLanding()
    {

        showpDialog();

        Map<String, String> params = new HashMap<String, String>();
        params.put("productId", "1004");
        params.put("userID", "1");

        System.out.println("PARAMS ProductLanding" + params);
        JsonArrayRequest request = new JsonArrayRequest(Request.Method.POST, productlanding_url, new JSONObject(params),
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray response) {
                        System.out.println("response of ProductLanding" + response.toString());

                       try {

                            for (int i = 0; i < response.length(); i++) {

                                JSONObject person = (JSONObject) response
                                        .get(i);
                                JSONArray itemlist=person.optJSONArray("itemList");
                                System.out.println("ProductLanding itemlist"+itemlist);

                               for(int j=0;j<itemlist.length();j++)
                                {
                                    JSONObject itmobj = (JSONObject)itemlist
                                            .get(j);


                                    JSONArray typemasters=itmobj.optJSONArray("packInfo");

                                   categorylist=new ArrayList<PackListModel>();

                                    for(int k=0;k<typemasters.length();k++)
                                    {

                                        subcat_list = new ArrayList<PackSizeModel>();
                                        JSONObject typemasterobj=(JSONObject)typemasters.get(k);
                                        cm=new PackListModel();
                                        cm.setProductLanding_packId(typemasterobj.getString("packId"));
                                        cm.setProductLanding_packLink(typemasterobj.getString("packDesc"));
                                        cm.setProductLanding_packDesc(typemasterobj.getString("packLink"));


                                        if (typemasterobj.getString("packSizeDetails").equals("null")) {
                                            System.out.println("arr null");
                                        } else {
                                            JSONArray SubcategoryArr = typemasterobj.optJSONArray("packSizeDetails");

                                            for (int l = 0; l < SubcategoryArr.length(); l++) {

                                                JSONObject Subcategoryobj = SubcategoryArr.getJSONObject(l);
                                                String packQty = Subcategoryobj.getString("packQty");
                                                String packSize = Subcategoryobj.getString("packSize");
                                                String sellingPrice = Subcategoryobj.getString("sellingPrice");
                                                String lineThroughPrice = Subcategoryobj.getString("lineThroughPrice");
                                                String packSizePrice = Subcategoryobj.getString("packSizePrice");
                                                String freeShipping = Subcategoryobj.getString("freeShipping");
                                                String reOrderPrice = Subcategoryobj.getString("reOrderPrice");
                                                PackSizeModel ch = new PackSizeModel();
                                                ch.setPackSize_packQty(packQty);
                                                ch.setPackSize_packSize(packSize);
                                                ch.setPackSize_sellingPrice(sellingPrice);
                                                ch.setPackSize_lineThroughPrice(lineThroughPrice);
                                                ch.setPackSize_packSizePrice(packSizePrice);
                                                ch.setPackSize_freeShipping(freeShipping);
                                                ch.setPackSize_reOrderPrice(reOrderPrice);
                                                // ch.setChild_Id(jo.getString("categoryID"));
                                                subcat_list.add(ch);
                                            } // for loop end

                                            cm.setItems(subcat_list);


                                        }

                                        categorylist.add(cm);

                                    }

                                    System.out.println("SIZE"+categorylist.size());
                                   /* mAdapter = new CoverFlowAdapter(CoverFlowActivity.this,categorylist);
                                    mAdapter.setData(categorylist);
                                    mCoverFlow.setAdapter(mAdapter);*/
                                }

                            }


                        } catch (JSONException e) {
                            e.printStackTrace();
                            System.out.println("Error" + e.getMessage());
                            // Toast.makeText(getApplicationContext(), "Error: " + e.getMessage(), Toast.LENGTH_LONG).show();
                        }

                        hidepDialog();
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        System.out.println("change Pass response -->> " + error.toString());
                        hidepDialog();
                    }
                });

        request.setRetryPolicy(new

                DefaultRetryPolicy(60000,
                DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));


        Volley.newRequestQueue(CoverFlowActivity.this).add(request);
    }


    private void showpDialog() {
        if (!pDialog.isShowing())
            pDialog.show();
    }

    private void hidepDialog() {
        if (pDialog.isShowing())
            pDialog.dismiss();
    }


}

1 ответ

  1. categorylistНеобходимо иметь значение, прежде чем установить егоmAdapter.
    Чтобы избавиться от этой ошибки инициализируйте свой mAdapterв ответ на ваш запрос залпа.
    Для лучшего решения используйте эту библиотеку, если она подходит для вашего приложения.