J.Doe
J.Doe

Reputation: 187

Arraylist get not filled

I don't understand why the size is null. So the data is not loaded in the recyclerview.

I load the URLS from the Images from the my database and it should be shown into the recyclerview. I tested and I get the URL's but they are not added to the list.

SharedPreferences USERNAMEsp;
String USERNAME;

RecyclerView recyclerViewImageSlider;
List<ImageGetter> imageList = new ArrayList<>();
ImageAdapter imageAdapter;
ImageGetter imageGetter;
PullData pullData = new PullData(Profil.this);


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_profil);

    USERNAMEsp = getSharedPreferences("DATAUSERNAME",MODE_PRIVATE);
    USERNAME = USERNAMEsp.getString("DATAUSERNAME","");

    pullData.getData(USERNAME, "3", new Pullcallback() {
        @Override
        public void getSingleData(String data) {
            imageGetter = new ImageGetter(data);
            imageList.add(imageGetter);
        }

        @Override
        public void getMultipleData(String[] multipledatas) {

        }

        @Override
        public void onError(String errormessage) {

        }
    });

    recyclerViewImageSlider = findViewById(R.id.recyclerViewImages);
    imageAdapter = new ImageAdapter(Profil.this, imageList, new AdapterCallback() {
        @Override
        public void onLoaded() {

        }
    });
    RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(Profil.this,LinearLayoutManager.HORIZONTAL,false);
    recyclerViewImageSlider.setLayoutManager(layoutManager);
    recyclerViewImageSlider.setHasFixedSize(true);
    recyclerViewImageSlider.setAdapter(imageAdapter);
    recyclerViewImageSlider.setOnFlingListener(new PagerSnapHelper());
    SnapHelper snapHelper = new PagerSnapHelper();
    snapHelper.attachToRecyclerView(recyclerViewImageSlider);

    imageAdapter.notifyDataSetChanged();

}

Upvotes: 0

Views: 76

Answers (1)

Abu Yousuf
Abu Yousuf

Reputation: 6107

Call imageAdapter.notifyDataSetChanged(); after imageList.add(imageGetter); because you are modifying arraylist and you have to let the adapter know to reload data set

 pullData.getData(USERNAME, "3", new Pullcallback() {
    @Override
    public void getSingleData(String data) {
        imageGetter = new ImageGetter(data);
        imageList.add(imageGetter);
        imageAdapter.notifyDataSetChanged();
    }

    @Override
    public void getMultipleData(String[] multipledatas) {

    }

    @Override
    public void onError(String errormessage) {

    }
});

Upvotes: 1

Related Questions