Saya ingin mengirim Daftar objek kembali dari layanan web dalam suatu aktivitas ke aktivitas lain tetapi saya mendapatkan NullPointerException.

Saya pikir saya punya masalah dalam daftar array dan penyihir data berasal dari layanan web

    private void parsAndSendTheAudiDbAlbumDetail(String response) {

    try {
        Gson gson = new Gson();
        TheaudiodbAlbums theaudiodbAlbums = gson.fromJson(response, TheaudiodbAlbums.class);

        List<AlbumDetail> albumDetails = new ArrayList<>();

        for (int i = 0; i < theaudiodbAlbums.getAlbum().size(); i++) {

            AlbumDetail detail = new AlbumDetail();
            detail.setStrAlbum(theaudiodbAlbums.getAlbum().get(i).getStrAlbum());
            detail.setStrArtist(theaudiodbAlbums.getAlbum().get(i).getStrArtist());
            albumDetails.add(detail);
        }

        Bundle bundle = new Bundle();
        bundle.putSerializable("classList",(Serializable)albumDetails);
        returnIntent.putExtras(bundle);
        setResult(Activity.RESULT_OK, returnIntent);
        finish();
        }

Ini adalah Kegiatan Pertama

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 100 && resultCode == Activity.RESULT_OK) {


        //Set data to AlbumFragment

        Bundle bundle=getIntent().getExtras();

        List<AlbumDetail> albumDetailList= (List<AlbumDetail>) bundle.getSerializable("classList");

        Toast.makeText(this,albumDetailList.get(0).getStrAlbum(), Toast.LENGTH_SHORT).show();


    }

}

Dan kelasnya adalah:

public class AlbumDetail implements Serializable {
private String strAlbum;
private String strArtist;

public String getStrAlbum() {
    return strAlbum;
}

public void setStrAlbum(String strAlbum) {
    this.strAlbum = strAlbum;
}

public String getStrArtist() {
    return strArtist;
}

public void setStrArtist(String strArtist) {
    this.strArtist = strArtist;
}

}

0
Hossein 10 Maret 2019, 17:56

1 menjawab

Jawaban Terbaik

Menggunakan getIntent(); akan memberikan maksud yang digunakan untuk memulai aktivitas. Untuk mendapatkan data maksud dari hasil suatu aktivitas, gunakan maksud yang disediakan dalam parameter metode.. sebagai

Bundle bundle = data.getExtras();

Dari pada

Bundle bundle = getIntent().getExtras();
0
Maddy Blacklisted 10 Maret 2019, 15:06