0

MY app crashes. I am using custom list view using card View Card View.

My JSON:

{"College":[{"Name":"NITK","Logo":"http:\/\/192.168.43.164\/Webapp\/Collegelogos\/nitk.jpg"},{"Name":"IITR","Logo":"http:\/\/192.168.43.164\/Webapp\/Collegelogos\/iitr.jpg"},{"Name":"NITT","Logo":"http:\/\/192.168.43.164\/Webapp\/Collegelogos\/nitt.jpg"},{"Name":"IITB","Logo":"http:\/\/192.168.43.164\/Webapp\/Collegelogos\/iitb.png"},{"Name":"IITG","Logo":"http:\/\/192.168.43.164\/Webapp\/Collegelogos\/iitg.png"},{"Name":"IITD","Logo":"http:\/\/192.168.43.164\/Webapp\/Collegelogos\/iitd.png"},{"Name":"BITS","Logo":"http:\/\/192.168.43.164\/Webapp\/Collegelogos\/bits.png"}]}

My code:

public class MainActivity extends AppCompatActivity {
    private List<College> listcollege;

    //Creating Views
    private RecyclerView recyclerView;
    private RecyclerView.LayoutManager layoutManager;
    private RecyclerView.Adapter adapter;

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

        //Initializing Views
        recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
        recyclerView.setHasFixedSize(true);
        layoutManager = new LinearLayoutManager(this);
        recyclerView.setLayoutManager(layoutManager);

        listcollege = new ArrayList<>();


        adapter = new CardAdapter(this, listcollege);
        recyclerView.setAdapter(adapter);

        getData();

    }

    private void getData(){
        //Showing a progress dialog
        final ProgressDialog loading = ProgressDialog.show(this,"Loading Data", "Please wait...",false,false);

        //Creating a json array request
        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET,Config.DATA_URL,null,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        //Dismissing progress dialog
                        Toast.makeText(MainActivity.this, "sachin", Toast.LENGTH_SHORT).show();
                        loading.dismiss();

                        try {
                            // College
                            JSONArray jsonArrayCollege = response.getJSONArray("College");

                            // calling method to parse json array
                            parseData(jsonArrayCollege);
                        }
                        catch (JSONException e)
                        {
                            e.printStackTrace();
                        }
                        }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                    }
                });

        RequestQueue requestQueue = Volley.newRequestQueue(this);

        requestQueue.add(jsonObjectRequest);
    }
    public  void parseData(JSONArray array) {
        for (int i = 0; i < array.length(); i++) {
            College college = new College();
            JSONObject json = null;
            try {
                json = array.getJSONObject(i);
                college.setImageUrl(json.getString(Config.TAG_IMAGE_URL));
                String s = (json.getString(Config.TAG_NAME));
                Toast.makeText(this, s, Toast.LENGTH_SHORT).show();
                college.setName(s);

            } catch (JSONException e) {
                e.printStackTrace();
            }
            listcollege.add(college);
        }
        adapter.notifyDataSetChanged();
    }

}

        RequestQueue requestQueue = Volley.newRequestQueue(this);

        requestQueue.add(jsonObjectRequest);
    }
    public  void parseData(JSONArray array) {
        for (int i = 0; i < array.length(); i++) {
            College college = new College();
            JSONObject json = null;
            try {
                json = array.getJSONObject(i);
                college.setImageUrl(json.getString(Config.TAG_IMAGE_URL));
                String s = (json.getString(Config.TAG_NAME));
                Toast.makeText(this, s, Toast.LENGTH_SHORT).show();
                college.setName(s);

            } catch (JSONException e) {
                e.printStackTrace();
            }
            listcollege.add(college);
        }
        adapter.notifyDataSetChanged();
    }
}

Errors, Android Monitor:

FATAL EXCEPTION: main Process: com.example.sachin.volleyrecycle, PID: 6825 java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.hashCode()' on a null object reference at com.android.volley.Request.(Request.java:136) at com.android.volley.toolbox.ImageRequest.(ImageRequest.java:71) at com.android.volley.toolbox.ImageLoader.get(ImageLoader.java:219) at com.android.volley.toolbox.ImageLoader.get(ImageLoader.java:171) at com.example.sachin.volleyrecycle.CardAdapter.onBindViewHolder(CardAdapter.java:48) at com.example.sachin.volleyrecycle.CardAdapter.onBindViewHolder(CardAdapter.java:24) at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6356) at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6389) at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5335) at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5598) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5440) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5436) at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2224) at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1551) at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1511) at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:595) at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3583) at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:3025) at android.view.View.measure(View.java:19857) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464) at android.widget.LinearLayout.measureVertical(LinearLayout.java:758) at android.widget.LinearLayout.onMeasure(LinearLayout.java:640) at android.view.View.measure(View.java:19857) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083) at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139) at android.view.View.measure(View.java:19857) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083) at android.support.v7.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:393) at android.view.View.measure(View.java:19857) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083) at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) at android.view.View.measure(View.java:19857) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464) at android.widget.LinearLayout.measureVertical(LinearLayout.java:758) at android.widget.LinearLayout.onMeasure(LinearLayout.java:640) at android.view.View.measure(View.java:19857) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083)

OneCricketeer
  • 179,855
  • 19
  • 132
  • 245
Samvant
  • 11

0 Answers0