Android-Image-Slider icon indicating copy to clipboard operation
Android-Image-Slider copied to clipboard

How to Use it with FIrebase RealTime DataBase

Open rahat14 opened this issue 6 years ago • 6 comments

Tried With Custom Adapter didnot worked .

rahat14 avatar Oct 29 '19 21:10 rahat14

same problem bro

anshupal257 avatar Nov 09 '19 16:11 anshupal257

they should fix it

rahat14 avatar Nov 09 '19 16:11 rahat14

What problem... It worked for me... `sliderArrayList = new ArrayList<>();

    db.collection(location)
            .get()
            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                    if (task.isSuccessful()) {
                        for (QueryDocumentSnapshot document : task.getResult()) {
                            Slider slider = document.toObject(Slider.class);
                            sliderArrayList.add(slider);
                        }

                        sliderV.setSliderAdapter(new SliderAdapter(getActivity(),sliderArrayList));
                        sliderV.startAutoCycle();
                        sliderV.setIndicatorAnimation(IndicatorAnimations.WORM);
                        sliderV.setSliderTransformAnimation(SliderAnimations.SIMPLETRANSFORMATION);

                    } else {
                        Log.w("FIREBASE", "Error getting documents.", task.getException());
                    }
                }
            });`

In Adapter Class Glide.with(viewHolder.itemView) .load(sliderArrayList.get(position).getImageUrl()) .into(viewHolder.imageViewBackground);

sarankumar-ns avatar Nov 25 '19 17:11 sarankumar-ns

bro but i want to display imageslider in recyclerView

anshupal257 avatar Dec 09 '19 05:12 anshupal257

This is my modified version which pulls slides from an external API:

Slider.java

public class Slider { public String img; public String txt;

Slider(String img, String txt) {
    this.img = img;
    this.txt = txt;
}

public String getImg() {
    return img;
}

public void setImg(String img) {
    this.img = img;
}

public String getTxt() {
    return txt;
}

public void setTxt(String txt) {
    this.txt = txt;
}

}

SliderAdapter.java

public class SliderAdapter extends SliderViewAdapter<SliderAdapter.SliderAdapterVH> {

Context context;
List<Slider> m;

SliderAdapter(List<Slider> m, Context context) {
    this.m = m;
    this.context = context;
}

@Override
public SliderAdapterVH onCreateViewHolder(ViewGroup parent) {
    View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.image_slider_layout_item, null);
    return new SliderAdapterVH(inflate);
}

@Override
public void onBindViewHolder(SliderAdapterVH viewHolder, int position) {

    final Slider imgFeed = m.get(position);
    Glide.with(viewHolder.itemView).load(imgFeed.getImg()).into(viewHolder.imageViewBackground);
    viewHolder.textViewDescription.setText(imgFeed.getTxt());
}

@Override
public int getCount() {
    return m.size();
}

class SliderAdapterVH extends SliderViewAdapter.ViewHolder {

    View itemView;
    ImageView imageViewBackground;
    TextView textViewDescription;

    public SliderAdapterVH(View itemView) {
        super(itemView);
        imageViewBackground = itemView.findViewById(R.id.iv_auto_image_slider);
        textViewDescription = itemView.findViewById(R.id.tv_auto_image_slider);
        this.itemView = itemView;
    }
}

}

lazarusvc avatar Feb 12 '20 02:02 lazarusvc

USE FIREBASE DATABASE

Adapter

public class SliderAdapter extends
        SliderViewAdapter<SliderAdapter.SliderAdapterVH> {

    private Context context;
    private List<SliderItem> mSliderItems = new ArrayList<>();

    public SliderAdapter(Context context) {
        this.context = context;
    }

    public void renewItems(List<SliderItem> sliderItems) {
        this.mSliderItems = sliderItems;
        notifyDataSetChanged();
    }

    public void deleteItem(int position) {
        this.mSliderItems.remove(position);
        notifyDataSetChanged();
    }

    public void addItem(SliderItem sliderItem) {
        this.mSliderItems.add(sliderItem);
        notifyDataSetChanged();
    }

    @Override
    public SliderAdapterVH onCreateViewHolder(ViewGroup parent) {
        View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.image_slider_layout_item, null);
        return new SliderAdapterVH(inflate);
    }

    @Override
    public void onBindViewHolder(SliderAdapterVH viewHolder, final int position) {

        SliderItem sliderItem = mSliderItems.get(position);

        viewHolder.textViewDescription.setText(sliderItem.getDescription());
        viewHolder.textViewDescription.setTextSize(16);
        viewHolder.textViewDescription.setTextColor(Color.WHITE);
        Glide.with(viewHolder.itemView)
                .load(sliderItem.getImageUrl())
                //.fitCenter()
                .into(viewHolder.imageViewBackground);

        viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(context, "This is item in position " + position, Toast.LENGTH_SHORT).show();
            }
        });
    }

    @Override
    public int getCount() {
        //slider view count could be dynamic size
        return mSliderItems.size();
    }

    public void add(String description) {
    }

    class SliderAdapterVH extends SliderViewAdapter.ViewHolder {

        View itemView;
        ImageView imageViewBackground;
        ImageView imageGifContainer;
        TextView textViewDescription;

        public SliderAdapterVH(View itemView) {
            super(itemView);
            imageViewBackground = itemView.findViewById(R.id.iv_auto_image_slider);
            imageGifContainer = itemView.findViewById(R.id.iv_gif_container);
            textViewDescription = itemView.findViewById(R.id.tv_auto_image_slider);
            this.itemView = itemView;
        }
    }

}

Model


    private String description;
    private String imageUrl;

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getImageUrl() {
        return imageUrl;
    }

    public void setImageUrl(String imageUrl) {
        this.imageUrl = imageUrl;
    }
}

Activity

 mFirebaseDatabase = FirebaseDatabase.getInstance();
 mDatabaseReference = mFirebaseDatabase.getReference();

sliderView = findViewById(R.id.imageSlider);
        adapter = new SliderAdapter(this);
        sliderView.setSliderAdapter(adapter);

        sliderView.setIndicatorAnimation(IndicatorAnimations.WORM); //set indicator animation by using SliderLayout.IndicatorAnimations. :WORM or THIN_WORM or COLOR or DROP or FILL or NONE or SCALE or SCALE_DOWN or SLIDE and SWAP!!
        sliderView.setSliderTransformAnimation(SliderAnimations.SIMPLETRANSFORMATION);
        sliderView.setAutoCycleDirection(SliderView.AUTO_CYCLE_DIRECTION_RIGHT);
        sliderView.setIndicatorSelectedColor(Color.WHITE);
        sliderView.setIndicatorUnselectedColor(Color.GRAY);
        sliderView.setScrollTimeInSec(4); //set scroll delay in seconds :
        sliderView.startAutoCycle();
        renewItems(sliderView);
renewItems(sliderView);

public void renewItems(View view) {
        mSliderList = new ArrayList<>();
            SliderItem sliderItem = new SliderItem();
            mSliderList.add(sliderItem);
            adapter.renewItems(mSliderList);
    }

private void loadSliderFirebase() {
        mDatabaseReference.child("slider").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                for (DataSnapshot contentSnapShot : dataSnapshot.getChildren()) {
                    SliderItem slideritem = contentSnapShot.getValue(SliderItem.class);
                    mSliderList.add(slideritem);
                }
                adapter.notifyDataSetChanged();
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });
    }

xposed73 avatar Apr 05 '20 16:04 xposed73