Отправить список объектов из веб-сервиса в другой вид деятельности - PullRequest
0 голосов
/ 10 марта 2019

Я хочу отправить список объектов обратно из веб-службы в деятельности в другую деятельность, но я получаю NullPointerException.

Мне кажется, у меня проблема с списком массивов, а данные поступают из веб-службы

    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();
        }

Это первое занятие

@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();


    }

}

и класс:

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;
}

}

1 Ответ

0 голосов
/ 10 марта 2019

Использование getIntent (); предоставит намерение, которое используется для начала деятельности. Для получения данных намерения из результата действия используйте намерение, указанное в параметре метода .. as

Bundle bundle = data.getExtras();

Вместо

Bundle bundle = getIntent().getExtras();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...