当我想从我的模型类中获取数据时,NullPointerException

时间:2018-05-21 04:03:13

标签: java android

在我的Android应用程序中我想从我的Web服务获取数据到我的回收视图,而我得到了我的数据我得到了一个错误,这是我的代码

    StringBuilder sb = new StringBuilder();
    sb.Append("<script>");            
    sb.Append("alert('aa')");
    sb.Append("</script>");
    HtmlGenericControl span = new HtmlGenericControl("span");
    span.InnerHtml = sb.ToString();
    this.form1.Controls.Add(span);

我有这个错误

  

java.lang.NullPointerException:尝试在空对象引用上调用虚方法'java.util.List com.example.ipul.aprovementfullservice.Model.ResponseCustomerData.getData()'

     

at com.example.ipul.aprovementfullservice.UI.UserMenu $ 1.onResponse(UserMenu.java:77)

当我使用我的调试模式时,responseCustomerData为null,然后我很困惑,为什么我得到这样的错误,我创建我的模型响应就像我的Web服务问一样 对不起语法不好,英语不是我的母语 所以我希望你们都帮助我,谢谢你们。

编辑这是我的列表getCustomer

public class UserMenuActivity extends AppCompatActivity{
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_user_menu);

    retrofit = new Retrofit.Builder().baseUrl("http://172.31.32.17:9290/")
            .addConverterFactory(GsonConverterFactory.create())
            .build();
    afs = retrofit.create(AdminFullService.class);

    responseLoginHome = (ResponseLoginHome) getIntent().getSerializableExtra("data");

    initViews();

    getCustomer = new getCustomer();

  }

  private void initViews() {
    recyclerViewCustomer = (RecyclerView) findViewById(R.id.recycler_view_user_menu);
    RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getApplicationContext());
    recyclerViewCustomer.setLayoutManager(layoutManager);
    recyclerViewCustomer.setHasFixedSize(true);
    adapterCustomer = new DataAdapterCustomer(this, getCustomerList);
    loadData();
  }

  private void loadData() {

    Call<ResponseCustomerData> callCustomer = afs.customerDataView("bearer " + responseLoginHome.getData().getAuth_token());
    callCustomer.enqueue(new Callback<ResponseCustomerData>() {
        @Override
        public void onResponse(Call<ResponseCustomerData> call, Response<ResponseCustomerData> response) {
            ResponseCustomerData responseCustomerData = response.body();
            getCustomerList.clear();
            getCustomerList.addAll(responseCustomerData.getData()); //this is where i got error in my logcat
            recyclerViewCustomer.setAdapter(adapterCustomer);
            adapterCustomer.notifyDataSetChanged();
            getCustomer.getTanggalLahir().substring(0,10);
            Toast.makeText(UserMenu.this, getCustomer.getTanggalLahir(), Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onFailure(Call<ResponseCustomerData> call, Throwable t) {
            Log.d("Error", t.getMessage());
        }
    });
  }
}

这是我的模型ResponseCustomerData

public class getCustomer{
  public String getNoHP() {
    return noHP;
  }

  public void setNoHP(String noHP) {
    this.noHP = noHP;
  }

  public String getRegistrationDate() {
    return registrationDate;
  }

  public void setRegistrationDate(String registrationDate) {
    this.registrationDate = registrationDate;
  }

  public String getNama() {
    return nama;
  }

  public void setNama(String nama) {
    this.nama = nama;
  }

  public String getNoID() {
    return noID;
  }

  public void setNoID(String noID) {
    this.noID = noID;
  }

  public String getJenisID() {
    return jenisID;
  }

  public void setJenisID(String jenisID) {
    this.jenisID = jenisID;
  }

  public String getTanggalLahir() {
    return tanggalLahir;
  }

  public void setTanggalLahir(String tanggalLahir) {
    this.tanggalLahir = tanggalLahir;
  }

  public String getJenisKelamin() {
    return jenisKelamin;
  }

  public void setJenisKelamin(String jenisKelamin) {
    this.jenisKelamin = jenisKelamin;
  }

  public String getNamaIbuKandung() {
    return namaIbuKandung;
  }

  public void setNamaIbuKandung(String namaIbuKandung) {
    this.namaIbuKandung = namaIbuKandung;
  }

  public String getAlamat() {
    return alamat;
  }

  public void setAlamat(String alamat) {
    this.alamat = alamat;
  }

  public String getProvinsi() {
    return provinsi;
  }

  public void setProvinsi(String provinsi) {
    this.provinsi = provinsi;
  }

  public String getKota() {
    return kota;
  }

  public void setKota(String kota) {
    this.kota = kota;
  }

  public String getKecamatan() {
    return kecamatan;
  }

  public void setKecamatan(String kecamatan) {
    this.kecamatan = kecamatan;
  }

  public String getKelurahan() {
    return kelurahan;
  }

  public void setKelurahan(String kelurahan) {
    this.kelurahan = kelurahan;
  }

  public String getKodepos() {
    return kodepos;
  }

  public void setKodepos(String kodepos) {
    this.kodepos = kodepos;
  }

  public String getAlamatDomosili() {
    return alamatDomosili;
  }

  public void setAlamatDomosili(String alamatDomosili) {
    this.alamatDomosili = alamatDomosili;
  }

  public String getProvinsiDomisili() {
    return provinsiDomisili;
  }

  public void setProvinsiDomisili(String provinsiDomisili) {
    this.provinsiDomisili = provinsiDomisili;
  }

  public String getKotaDomisili() {
    return kotaDomisili;
  }

  public void setKotaDomisili(String kotaDomisili) {
    this.kotaDomisili = kotaDomisili;
  }

  public String getKecamatanDomisili() {
    return kecamatanDomisili;
  }

  public void setKecamatanDomisili(String kecamatanDomisili) {
    this.kecamatanDomisili = kecamatanDomisili;
  }

  public String getKelurahanDomisili() {
    return kelurahanDomisili;
  }

  public void setKelurahanDomisili(String kelurahanDomisili) {
    this.kelurahanDomisili = kelurahanDomisili;
  }

  public String getKodeposDomisili() {
    return kodeposDomisili;
  }

  public void setKodeposDomisili(String kodeposDomisili) {
    this.kodeposDomisili = kodeposDomisili;
  }

  public String getFotoID() {
    return fotoID;
  }

  public void setFotoID(String fotoID) {
    this.fotoID = fotoID;
  }

  public String getRegisterStatus() {
    return registerStatus;
  }

  public void setRegisterStatus(String registerStatus) {
    this.registerStatus = registerStatus;
  }

  public String getKeterangan() {
    return keterangan;
  }

  public void setKeterangan(String keterangan) {
    this.keterangan = keterangan;
  }

  public String getFotoTandaTangan() {
    return fotoTandaTangan;
  }

  public void setFotoTandaTangan(String fotoTandaTangan) {
    this.fotoTandaTangan = fotoTandaTangan;
  }

  public String getEmail() {
    return email;
  }

  public void setEmail(String email) {
    this.email = email;
  }
}

1 个答案:

答案 0 :(得分:1)

请尝试此操作,您必须检查您的回复是否为空。

Call<ResponseCustomerData> callCustomer = afs.customerDataView("bearer " + responseLoginHome.getData().getAuth_token());
    callCustomer.enqueue(new Callback<ResponseCustomerData>() {
        @Override
        public void onResponse(Call<ResponseCustomerData> call, Response<ResponseCustomerData> response) {
            ResponseCustomerData responseCustomerData = response.body();
            getCustomerList.clear();
            if(responseCustomerData!=null){ // check data retrive or not                    
                if(responseCustomerData.getData()!=null){
                    getCustomerList.addAll(responseCustomerData.getData());
                    recyclerViewCustomer.setAdapter(adapterCustomer);
                    adapterCustomer.notifyDataSetChanged();
                    getCustomer.getTanggalLahir().substring(0,10);
                    Toast.makeText(UserMenu.this, getCustomer.getTanggalLahir(), Toast.LENGTH_SHORT).show();
                } else {
                    Log.d("Error", responseCustomerData.getError());
                }
            }
        }

        @Override
        public void onFailure(Call<ResponseCustomerData> call, Throwable t) {
            Log.d("Error", t.getMessage());
        }
    });