为了账号安全,请及时绑定邮箱和手机立即绑定

网格图像适配器排序

网格图像适配器排序

江户川乱折腾 2021-10-06 10:49:54
我用图像构建了一些 gridView,一切正常。我有一组图像,我可以点击它们中的每一个,然后根据需要继续进行另一项活动。问题是 - 当我向适配器添加新图像时 - 它被添加到堆栈的末尾。我怎样才能重新排列图像的显示从新到旧而不是像现在一样从旧到新。(我自己做了一些事情(正如你在评论中看到的),它的显示就像我想要的,但是当我点击图片时,我得到了错误的图片):final ArrayList<String> imgString = new ArrayList<>();        DatabaseReference reference = FirebaseDatabase.getInstance().getReference();        Query query = reference                .child("user_photos")                .child(FirebaseAuth.getInstance().getCurrentUser().getUid());        query.addListenerForSingleValueEvent(new ValueEventListener() {            @Override            public void onDataChange(DataSnapshot dataSnapshot) {                for ( DataSnapshot singleSnapshot :  dataSnapshot.getChildren()){                    // photos.add(singleSnapshot.getValue(Photo.class));                    imgString.add(singleSnapshot.child("postimage").getValue().toString());                }                //setup our image grid                int gridWidth = getResources().getDisplayMetrics().widthPixels;                int imageWidth = gridWidth/NUM_GRID_COLUMNS;                gridView.setColumnWidth(imageWidth);                final ArrayList<String> imgUrls = new ArrayList<String>();                for(int i = 0; i < imgString.size(); i++){                    imgUrls.add(imgString.get(i));//                for(int i = imgString.size()-1; i >=0 ; i--){//                    imgUrls.add(imgString.get(i));                }                GridImageAdapter adapter = new GridImageAdapter(ProfileActivity.this,R.layout.layout_grid_imageview,"", imgUrls);                gridView.setAdapter(adapter);
查看完整描述

1 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

@Override

public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

    PostKey=imgString.get(i);//here i is the position of the view in the adapter.

正如你所做的那样:


for(int i = imgString.size()-1; i >=0 ; i--){

              imgUrls.add(imgString.get(i));//imgUrls.get(0) stored imgString.get(imgString.size()-1)

当您单击 0 位置的项目时,其 imgUrls 不指向imgString.get(0),而是imgString.get(imgString.size()-1)。


编辑:试试这个:


PostKey=imgString.get(imgString.size()-1-i);


查看完整回答
反对 回复 2021-10-06
  • 1 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信