Versuch zum aufrufen von interface-Methoden 'java.lang.Object[] java.util.Sammlung.toArray()' auf ein null-Objekt Verweis

Ich habe Probleme beim laden von Daten aus dem remote-server zu der Liste meiner anzeigen. Es zeigt die oben genannten Fehler und die app stürzt ab, sobald ich die Liste öffnen.
Ich habe hervorgehoben, die Funktionen, bei denen der Fehler im log-cat. Ich habe auch erwähnt, wo ist die Wirkung in meinen Klassen.

public class Library extends Fragment {
private MaterialSearchView searchView;
Librarycontact currentItem;
private SimpleAdapterLibrary adpt;
List<Librarycontact> result;
ListView lView ;
 ;

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.lib, container, false);

    setHasOptionsMenu(true);

    searchView = (MaterialSearchView)v.findViewById(R.id.search_view);
    searchView.setVoiceSearch(true); //or false
  // searchView.setSuggestions(getResources().getStringArray(R.array.query_suggestions));
 //  searchView.setCursorDrawable(R.drawable.custom_cursor);

    adpt  = new SimpleAdapterLibrary(new ArrayList<Librarycontact>(), getActivity());
    lView = (ListView) v.findViewById(R.id.list);
    searchView.setOnQueryTextListener(new MaterialSearchView.OnQueryTextListener() {


        @Override
        public boolean onQueryTextSubmit(String query) {


            for (int i = 0; i < lView.getAdapter().getCount(); i++) {
                currentItem = result.get(i);

                if (query.contentEquals(currentItem.getitmCode())) {

                    Intent l = new Intent(getActivity(), SingleBook.class);

                    l.putExtra("id", currentItem.getid());
                    l.putExtra("itemname", currentItem.getitemname());
                    l.putExtra("itmCode", currentItem.getitmCode());

                    l.putExtra("itmRate", currentItem.getitmRate());

                    startActivity(l);
                    break;

                } else

                {

                    Toast.makeText(getActivity(), "No Match Found", Toast.LENGTH_SHORT).show();
                }
            }

            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {

            return false;
        }
    });

    searchView.setOnSearchViewListener(new MaterialSearchView.SearchViewListener() {
        @Override
        public void onSearchViewShown() {

        }

        @Override
        public void onSearchViewClosed() {

        }
    });
    lView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {
            currentItem = result.get(position);
            Intent i = new Intent(getActivity() ,SingleBook.class);

            i.putExtra("id", currentItem.getid());
            i.putExtra("itemname", currentItem.getitemname());
            i.putExtra("itmCode", currentItem.getitmCode());

            i.putExtra("itmRate", currentItem.getitmRate());

            startActivity(i);

        }
    });

    searchView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            currentItem = result.get(position);
            Intent i = new Intent(getActivity(), SingleBook.class);

            i.putExtra("id", currentItem.getid());
            i.putExtra("itemname", currentItem.getitemname());
            i.putExtra("itmCode", currentItem.getitmCode());

            i.putExtra("itmRate", currentItem.getitmRate());

            startActivity(i);

        }

    });

    if (isAvailable()){   lView.setAdapter(adpt);
        //Exec async load task
        (new AsyncListViewLoader()).execute("http://minor.esy.es/libraryavailabilityofbooks.php");
    }
    else{
        showAlertDialog(getActivity(), "No Internet Connection",
                "Please Check Your Internet Connection And Try Again", false);
    }
    return v;}
public Boolean isAvailable() {
    try {
        Process p1 = java.lang.Runtime.getRuntime().exec("ping -c 1    www.google.com");
        int returnVal = p1.waitFor();
        boolean reachable = (returnVal==0);
        if(reachable){
            System.out.println("Internet access");
            return reachable;
        }
        else{
            System.out.println("No Internet access");
        }

    } catch (Exception e) {

        e.printStackTrace();
    }
    return false;
}
public void showAlertDialog(Context context, String title, String message, Boolean status) {
    AlertDialog alertDialog = new AlertDialog.Builder(context).create();
    alertDialog.setCancelable(false);
    //Setting Dialog Title
    alertDialog.setTitle(title);

    //Setting Dialog Message
    alertDialog.setMessage(message);

    //Setting alert dialog icon

    //Setting OK Button
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
        }
    });

    //Showing Alert Message
    alertDialog.show();

}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.menu_main, menu);

    MenuItem item = menu.findItem(R.id.action_search);

    searchView.setMenuItem(item);

}

HERE **private class AsyncListViewLoader extends AsyncTask<String, Void, List<Librarycontact>> {**
    private final ProgressDialog dialog = new ProgressDialog(getActivity());

    @Override
    protected void onPostExecute(List<Librarycontact> result) {

        super.onPostExecute(result);
        dialog.dismiss();
        adpt.getItemList();
        **adpt.setItemList(result);** HERE
        adpt.notifyDataSetChanged();
    }

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        dialog.setMessage("Loading information...");
        dialog.show();
    }

    @Override
    protected List<Librarycontact> doInBackground(String... params) {
        result = new ArrayList<>();

        try {
            URL u = new URL(params[0]);

            HttpURLConnection conn = (HttpURLConnection) u.openConnection();
            conn.setRequestMethod("GET");

            conn.connect();
            InputStream is = conn.getInputStream();

            //Read the stream
            byte[] b = new byte[1024];
            ByteArrayOutputStream baos = new ByteArrayOutputStream();

            while ( is.read(b) != -1)
                baos.write(b);

            String JSONResp = new String(baos.toByteArray());

            JSONArray arr = new JSONArray(JSONResp);
            for (int i=0; i < arr.length(); i++) {
                result.add(convertContact(arr.getJSONObject(i)));
            }

            return result;
        }
        catch(Throwable t) {
            t.printStackTrace();
        }
        return null;
    }

    private Librarycontact convertContact(JSONObject obj) throws JSONException {
        String itemname = obj.getString("availability");
        String itmCode = obj.getString("title");
        String id = obj.getString("id");
        String itmRate = obj.getString("authorname");

        return new Librarycontact(itemname, itmCode, id,itmRate);
    }


}




@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == MaterialSearchView.REQUEST_VOICE && resultCode == getActivity().RESULT_OK) {
        ArrayList<String> matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
        if (matches != null && matches.size() > 0) {
            String searchWrd = matches.get(0);
            if (!TextUtils.isEmpty(searchWrd)) {
                searchView.setQuery(searchWrd, false);
            }
        }

        return;
    }
    super.onActivityResult(requestCode, resultCode, data);
}

meine Daten Modell

public class Librarycontact implements Serializable {



private String itemname;

private String id;

private String itmCode;
private String itmRate;

public Librarycontact(String name, String itmCode, String id,String itmRate) {
    super();
    this.itemname = name;
    this.itmCode = itmCode;
    this.id = id;
    this.itmRate = itmRate;
}

public String getitemname() {
    return itemname;
}

public void setName(String itemname) {
    this.itemname = itemname;
}

public String getitmCode() {
    return itmCode;
}

public void setitmCode(String itmCode) {
    this.itmCode = itmCode;
}

public String getid() {
    return id;
}

public void setid(String id) {
    this.id = id;
}

public String getitmRate() {
    return itmRate;
}

public void setitmRate(String itmRate) {
    this.itmRate = itmRate;
}
}

und mein adapter

public class SimpleAdapterLibrary extends ArrayAdapter<Librarycontact> {

private List<Librarycontact> itemList;
private Context context;
private ArrayList<Librarycontact> contactListOrigin = new ArrayList<Librarycontact>();


   public SimpleAdapterLibrary(List<Librarycontact> itemListt, Context ctx) {
    super(ctx, android.R.layout.simple_list_item_1, itemListt);
    this.itemList = itemListt;
    this.context = ctx;

    this.contactListOrigin.addAll(itemListt);

}


public int getCount() {
    if (itemList != null)
        return itemList.size();
    return 0;
}
public Librarycontact getItem(int position) {
    if (itemList != null)
        return itemList.get(position);

    return null;
}

public long getItemId(int position) {
    if (itemList != null)
        return itemList.get(position).hashCode();
    return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    View v = convertView;
    if (v == null) {
        LayoutInflater inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        v = inflater.inflate(R.layout.liblistitem, null);
    }

    Librarycontact c = itemList.get(position);
    //TextView text = (TextView) v.findViewById(R.id.name);
    //text.setText(c.getitemname());

    TextView text1 = (TextView) v.findViewById(R.id.name);
    text1.setText(c.getitmCode());
    String g= c.getitmCode();
    Character o =  g.charAt(0);

    String k = o.toString();
    TextDrawable drawable = TextDrawable.builder()
            .beginConfig()
            .textColor(Color.BLACK)
            .useFont(Typeface.DEFAULT)
            .fontSize(30)
            .bold()
            .toUpperCase()
            .endConfig()
            .buildRoundRect(k, Color.RED, 10); //radius in px


    ImageView img = (ImageView) v.findViewById(R.id.imageView2);
    img.setImageDrawable(drawable);

    /*       TextView text2 = (TextView) v.findViewById(R.id.email);
    text2.setText(c.getid());

    TextView text3 = (TextView) v.findViewById(R.id.phone);
    text3.setText(c.getitmRate());
    */
    return v;

}

public List<Librarycontact> getItemList() {

    if (itemList == null)
        return Collections.emptyList();
    else


    return itemList;
}

public void setItemList(List<Librarycontact> itemListt) {
    this.itemList = itemListt;
    **contactListOrigin.addAll(itemListt);** HERE 
}}

mein logcat

11-09 02:01:25.892 4998-4998/essentials.gtbit.com.gtbitessentials E/AndroidRuntime: FATAL EXCEPTION: main
11-09 02:01:25.892 4998-4998/essentials.gtbit.com.gtbitessentials E/AndroidRuntime: Process: essentials.gtbit.com.gtbitessentials, PID: 4998
11-09 02:01:25.892 4998-4998/essentials.gtbit.com.gtbitessentials E/AndroidRuntime: java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object[] java.util.Collection.toArray()' on a null object reference
11-09 02:01:25.892 4998-4998/essentials.gtbit.com.gtbitessentials E/AndroidRuntime:     at java.util.ArrayList.addAll(ArrayList.java:188)
11-09 02:01:25.892 4998-4998/essentials.gtbit.com.gtbitessentials E/AndroidRuntime:     at essentials.gtbit.com.gtbitessentials.SimpleAdapterLibrary.setItemList(SimpleAdapterLibrary.java:110)
11-09 02:01:25.892 4998-4998/essentials.gtbit.com.gtbitessentials E/AndroidRuntime:     at essentials.gtbit.com.gtbitessentials.Library$AsyncListViewLoader.onPostExecute(Library.java:215)
11-09 02:01:25.892 4998-4998/essentials.gtbit.com.gtbitessentials E/AndroidRuntime:     at essentials.gtbit.com.gtbitessentials.Library$AsyncListViewLoader.onPostExecute(Library.java:206)
11-09 02:01:25.892 4998-4998/essentials.gtbit.com.gtbitessentials E/AndroidRuntime:     at android.os.AsyncTask.finish(AsyncTask.java:632)
11-09 02:01:25.892 4998-4998/essentials.gtbit.com.gtbitessentials E/AndroidRuntime:     at android.os.AsyncTask.access$600(AsyncTask.java:177)
11-09 02:01:25.892 4998-4998/essentials.gtbit.com.gtbitessentials E/AndroidRuntime:     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
11-09 02:01:25.892 4998-4998/essentials.gtbit.com.gtbitessentials E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:111)
11-09 02:01:25.892 4998-4998/essentials.gtbit.com.gtbitessentials E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:194)
11-09 02:01:25.892 4998-4998/essentials.gtbit.com.gtbitessentials E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5576)
11-09 02:01:25.892 4998-4998/essentials.gtbit.com.gtbitessentials E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method)
11-09 02:01:25.892 4998-4998/essentials.gtbit.com.gtbitessentials E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:372)
11-09 02:01:25.892 4998-4998/essentials.gtbit.com.gtbitessentials E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:956)
11-09 02:01:25.892 4998-4998/essentials.gtbit.com.gtbitessentials E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:751)
Schreibe einen Kommentar