首页 > 解决方案 > 故事进度条仅向我显示来自 firebase 数据库的数组列表的最后一张图片

问题描述

故事进度类
如何在来自firebase的arraylist中显示我的所有图片,因为它仅在storyprogressbar上显示最后一张图片。Arraylist包含所有图片Url.problem未在storyProgressbar上显示所有图片..请帮我解决问题。

这是我从中获取数据(图片)的firebase树 在此处输入图像描述


DetailStatusActivity

 public class DetailStatusActivity extends AppCompatActivity implements StoriesProgressView.StoriesListener {


    StoriesProgressView storiesProgressView;
    ImageView image;

    int counter = 0;
    long pressTime = 0L;
    long limit = 500L;

    public View.OnTouchListener onTouchListener = new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            switch (motionEvent.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    pressTime = System.currentTimeMillis();
                    storiesProgressView.pause();
                    return false;
                case MotionEvent.ACTION_UP:
                    long now = System.currentTimeMillis();
                    storiesProgressView.resume();
                    return limit < now - pressTime;
            }
            return false;
        }
    };


    private String currentUserID;
    private DatabaseReference statusRef;
    private String visit_id;

    private DatabaseReference detailStatusRef;
    private ArrayList<String> imagesArray;
    private DatabaseReference userRef;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_detail_status);

        image = (ImageView) findViewById(R.id.image);
        storiesProgressView = (StoriesProgressView) findViewById(R.id.stories);


        visit_id = getIntent().getStringExtra("uid");
        Log.d("cominghereId", visit_id);

        currentUserID = FirebaseAuth.getInstance().getCurrentUser().getUid();

        statusRef = FirebaseDatabase.getInstance().getReference().child("Statuses");
        userRef = FirebaseDatabase.getInstance().getReference().child("Users");
        detailStatusRef = FirebaseDatabase.getInstance().getReference();


        View reverse = findViewById(R.id.reverse);
        reverse.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                storiesProgressView.reverse();

            }
        });
        reverse.setOnTouchListener(onTouchListener);

        View skip = findViewById(R.id.skip);
        skip.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                storiesProgressView.skip();
            }
        });

        skip.setOnTouchListener(onTouchListener);

    }

    @Override
    protected void onStart() {
        super.onStart();

        imagesArray=new ArrayList<>();

        detailStatusRef.child("DetailStatusesImages").child(visit_id).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                imagesArray.clear();
                for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                    DetailStatusModel Dupload = snapshot.getValue(DetailStatusModel.class);

                    imagesArray.add(Dupload.getImage());

                }
                Log.d("sizee", String.valueOf(imagesArray.size()));


                storiesProgressView.setStoriesCount(imagesArray.size());
                storiesProgressView.setStoryDuration(3000L);
                storiesProgressView.setStoriesListener(DetailStatusActivity.this);
                storiesProgressView.startStories(counter);

                Glide.with(getApplicationContext()).load(imagesArray.get(counter)).into(image);


            }


            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
    }


    @Override
    public void onNext() {

        Glide.with(getApplicationContext()).load(imagesArray.get(++counter)).into(image);
        Log.d("indexx", imagesArray.get(counter));

    }

    @Override
    public void onPrev() {

        if ((counter - 1) < 0) return;

        Glide.with(getApplicationContext()).load(imagesArray.get(--counter)).into(image);

}

    @Override
    public void onComplete() {

        finish();

    }

    @Override
    protected void onDestroy() {


        storiesProgressView.destroy();

        super.onDestroy();
    }

    @Override
    protected void onPause() {

        storiesProgressView.pause();
        super.onPause();
    }

    @Override
    protected void onResume() {

        storiesProgressView.resume();
        super.onResume();
    }
}

标签: javaandroidarraysfirebaseprogress-bar

解决方案


推荐阅读