亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從 Adapter 獲取 itemList.size() 或 itemList

如何從 Adapter 獲取 itemList.size() 或 itemList

動漫人物 2023-07-28 10:22:53
從代碼片段中,我記錄了一些調試點,發現mImages.size()在不同的地方給出了不同的輸出。無論 的值如何mImages.seize(),它總是返回0... public ArrayList<Uri> getImageUris()...對為什么...有任何幫助嗎?public class ImagesAdapter extends RecyclerView.Adapter<ImagesAdapter.ImageViewHolder> {    private ArrayList<Image> mImages;    private ArrayList<Uri> mImagesUri = new ArrayList<>();    private Image mimage;    private Uri uris;    private static final String TAG = "ImagesAdapter";    public ImagesAdapter(ArrayList<Image> images) {        mImages = images;        if (mImages == null)            Log.d(TAG, "ImagesAdapter mImages = null");    }    @Override    public ImageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        return new ImageViewHolder(LayoutInflater.from(parent.getContext())                .inflate(R.layout.list_pic_update, parent, false));    }    @Override    public void onBindViewHolder(ImageViewHolder holder, final int position) {        holder.bind(mImages.get(position));        holder.cancel.setOnClickListener(view -> {            int rpos = holder.getAdatpterpos();            removeAt(rpos, mImages.get(position).getSource());            Log.d(TAG, "imagesAdapter position = " + position);        });    }    @Override    public int getItemCount() {        Log.d(TAG, "imagesAdapter getItemCount = " + mImages.size());        return mImages.size();    }    public class ImageViewHolder extends RecyclerView.ViewHolder {        protected ImageView imageView;        private ImageButton cancel;        public ImageViewHolder(View itemView) {            super(itemView);            imageView = itemView.findViewById(R.id.news_pic_update_details);            cancel = itemView.findViewById(R.id.cancel_image);        }
查看完整描述

2 回答

?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

我想我知道為什么。您有 2 個獨立的適配器,其中MainActivityFragment2 個不同的圖像列表。

您將項目添加到 Fragment 中的列表中,但 MainActivity 中的列表從未更新。

所以當你調用upload_crime()MainActivity時,圖像列表的大小始終為0。

您應該只在一處與適配器交互,最好是片段


查看完整回答
反對 回復 2023-07-28
?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

Array當您想將信息從 a 傳遞到 other時,您就做錯了Array。你不能這樣做 -> mImages = images;

你可能會問為什么?...當你這樣做時,mImages等于images,換句話說,如果你清除圖像images.clear).. mImages也會被清除。

你需要做的mImages.addAll(images);通過這種方式,兩者都會有相同的data,但都會不同,換句話說,如果你清除其中一個數組..另一個數組不會被清除。

請務必在您執行此操作的每個地方執行我告訴您的內容array = array。

希望有幫助


查看完整回答
反對 回復 2023-07-28
  • 2 回答
  • 0 關注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號