-4

私はリサイクラービューANSカードビューでMySQLデータベースからのデータを表示しようとしているが、私は、このエラーメッセージが直面している:奇妙なNullPointException

のjava.lang.NullPointerException:インターフェイスメソッドを呼び出すための試みを 「INT java.util.List.size()」nullのオブジェクト参照の上

すべては私が私のループで(ログイン)で取得したデータを表示することができるよので、私は「とき正常に動作しているようです私のリストdata_listにデータを追加しようとしています。私のdata_listによって返された行の数を知ることができるので、すべてのことがOKです。

Log.e("number of lines return", String.valueOf(data_list.size())); 

しかし、私は私のカスタム・アダプタのDATA_LISTに到達しようとしているとき:

@Override 
public int getItemCount() { 
    return my_data.size(); 
} 

それはヌルですので、私はmy_dataにアクセスすることができない私を警告します。

自分のデータベースからデータを取得する私のコードの一部:getItemCount実行中

private void load_data_from_server(final int id) { 
    //Log.e("iddddsss", String.valueOf(id)); 
    AsyncTask<Integer,Void,Void> task =new AsyncTask<Integer, Void, Void>(){ 

     @Override 
     protected Void doInBackground(Integer... integers) { 

      OkHttpClient client = new OkHttpClient(); 
      Request request = new Request.Builder() 

        .url("http://www.unhabitatrdcongo.org/Recycler-android-mySQL/index2.php?id="+id) 
        .build(); 
      try { 
       Response response = client.newCall(request).execute(); 
       JSONArray array = new JSONArray(response.body().string()); 



       for (int i=0; i<array.length(); i++){ 
        JSONObject object = array.getJSONObject(i); 

        Integer idd = object.getInt("id"); 
        String des = object.getString("description").toString(); 
        String im =object.getString("image").toString(); 

        MyData data = new MyData(idd, des, im); 

        Log.e("errr", data.getDescription().toString()); 
        data_list.add(data); 


       } 

     Log.e("number of lines read", String.valueOf(data_list.size())); 

      } catch (IOException e) { 
       e.printStackTrace(); 
       Log.e("erreur IO EXCEPTION", e.toString()); 
      } catch (JSONException e) { 
       System.out.print("End of content"); 
       Log.e("erreur JSON",e.toString()); 
      } 
      return null; 
     } 
+0

どこにでも 'my_data'を設定していますか?私はそれを見ることができません。そしてその場合、なぜそれがヌルであることをあなたに驚かせるでしょうか? –

+1

もっとコードを表示する! – Xenolion

答えて

0

一般に、my_dataがまだ割り当てられていません()。このメソッドはアダプタの構造体this.my_data = data_listで呼び出されます。

0

ほとんどの場合、クラスが取得しているList<MyData> data_listはnullです。次に、this.my_data = data_list;の場合はthis.my_data = nullとなります。

これを確認してください。

+0

public class CustomAdapter extends RecyclerView.Adapter { プライベートコンテキストコンテキスト。 プライベートリスト my_data; public CustomAdapter(コンテキストコンテキスト、リストデータリスト){ this.context = context; this.my_data = data_list; } –

+0

同じこと、 'CustomAdapter'がパラメータとして受け取るリストはnullであるようです。あなたのproyectをデバッグしようとしましたか? –