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

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

如何刪除視圖尋呼機的特定位置

如何刪除視圖尋呼機的特定位置

慕姐8265434 2022-09-28 16:41:38
我想在其中添加一些圖像,一切都很好(圖像添加),但是當我想刪除圖像時,它正在工作并刪除圖像,但它刪除了最后一個圖像而不是我想刪除的特定圖像,我不知道如何獲取特定圖像的位置并刪除它。public class PhotoAdd_Adapter extends PagerAdapter {    private LayoutInflater inflater;    private Context context;    ArrayList<String> mylist;    SharedPreferences sharedPreferences;    JSONArray responsearray = null;    private static final String TAG_PHOTO_ONE = "Gallery_Full";    HashMap<String, String> get;    LinearLayout addimages;    String ImageID;    ProgressBar progressBar;    String finalimgpath, imageId;    ImageView imageView, deletebtn;    TextView no_image, p_id;    private FragmentManager f_manager;    int delPosition;    public PhotoAdd_Adapter(Context context, ArrayList<String> mylist, FragmentManager f_manager) {        this.f_manager = f_manager;        this.context = context;        this.mylist = mylist;        inflater = LayoutInflater.from(context);        sharedPreferences = context.getSharedPreferences(context.getString(R.string.prefs), 0);    }    @Override    public void destroyItem(ViewGroup container, int position, Object object) {        container.removeView((View) object);    }    @Override    public int getCount() {        return mylist.size();    }    @Override    public int getItemPosition(@NonNull Object object) {        if(mylist.contains(object)){            return mylist.indexOf(object);        }else {            return POSITION_NONE;        }//        return super.getItemPosition(object);//        return PagerAdapter.POSITION_NONE;    }    
查看完整描述

2 回答

?
慕的地10843

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

您的問題是視圖尋呼機在刪除圖像任務完成之前重新加載。因此,將加載相同的圖像集,但由于列表大小已被修改,因此不會加載最后一個圖像。

解決方案:等待刪除操作完成,然后再在視圖頁程序上調用通知數據集更改()


查看完整回答
反對 回復 2022-09-28
?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

我已經更新了你的代碼,只是試試下面的代碼:


 public class PhotoAdd_Adapter extends PagerAdapter {

        private LayoutInflater inflater;

        private Context context;

        ArrayList<String> mylist;

        SharedPreferences sharedPreferences;

        JSONArray responsearray = null;

        private static final String TAG_PHOTO_ONE = "Gallery_Full";

        HashMap<String, String> get;

        LinearLayout addimages;

        String ImageID;

        ProgressBar progressBar;

        String finalimgpath, imageId;

        ImageView imageView, deletebtn;

        TextView no_image, p_id;

        private FragmentManager f_manager;

        int delPosition;


        public PhotoAdd_Adapter(Context context, ArrayList<String> mylist, FragmentManager f_manager) {

            this.f_manager = f_manager;

            this.context = context;

            this.mylist = mylist;

            inflater = LayoutInflater.from(context);

            sharedPreferences = context.getSharedPreferences(context.getString(R.string.prefs), 0);

        }

        @Override

        public void destroyItem(ViewGroup container, int position, Object object) {

            container.removeView((View) object);

        }

        @Override

        public int getCount() {

            return mylist.size();

        }

        @Override

        public int getItemPosition(@NonNull Object object) {

            if(mylist.contains(object)){

                return mylist.indexOf(object);

            }else {

                return POSITION_NONE;

            }

    //        return super.getItemPosition(object);

    //        return PagerAdapter.POSITION_NONE;

        }

        @Override

        public Object instantiateItem(ViewGroup view, final int position) {

            View imageLayout = inflater.inflate(R.layout.photoadd_adapter, view, false);

            assert imageLayout != null;

            imageView = imageLayout.findViewById(R.id.image_adapter);

            deletebtn = imageLayout.findViewById(R.id.deletebtn);

            p_id = imageLayout.findViewById(R.id.p_id);

            this.delPosition = position;       

            String test = String.valueOf(mylist.get(position));

            String finalimgpaths = context.getString(R.string.moreimgpath) + test;

            Glide.with(context)

                    .load(finalimgpaths)

                    .into(imageView);

            view.addView(imageLayout, 0);

            deletebtn.setOnClickListener(new View.OnClickListener() {

                @Override

                public void onClick(View v) {

    //                showDialogBox();

                    imageId = ImageID;

                    Log.e("IMAGEIDONE", imageId);

                    responsearray = responsearray(responsearray, position);

                    new DeleteImage().execute(true);

                }

            });

            return imageLayout;

        }

        @Override

        public boolean isViewFromObject(View view, Object object) {

            return view.equals(object);

        }

        @Override

        public void restoreState(Parcelable state, ClassLoader loader) {

        }

        @Override

        public Parcelable saveState() {

            return null;

        }

        class DeleteImage extends AsyncTask<Boolean, Void, String> {

            @Override

            protected String doInBackground(Boolean... booleans) {

                ProfileApi profileApi = new ProfileApi();

                String result = null;

                try {

                    Log.e("IMAGEID", ImageID);

                    result = profileApi.deleteImage(sharedPreferences.getString("id", ""), imageId);

                    Log.e("DELETERESULT", result);

                    JSONObject object = new JSONObject(result);

                    if (object.getString("error").equalsIgnoreCase("false")) {


                        return "true";

                    } else {

                        String errormsg = object.getString("response");

                        return errormsg;

                    }

                } catch (ApiException e) {

                    e.printStackTrace();

                } catch (JSONException e) {

                    e.printStackTrace();

                }

                return null;

            }

            @Override

            protected void onPostExecute(String s) {

    //            ad.hide();

                super.onPostExecute(s);

                try {

                    if (s != null) {

                        Toast.makeText(context, "Image Deleted",Toast.LENGTH_SHORT).show();

                    mylist.remove(position);

                    notifyDataSetChanged();

                    }

                } catch (IllegalStateException e) {

                    e.printStackTrace();

                }

            }

        }

        public static JSONArray responsearray(JSONArray jarray, int pos) {

            JSONArray Njarray = new JSONArray();

            try {

                for (int i = 0; i < jarray.length(); i++) {

                    if (i != pos)

                        Njarray.put(jarray.get(i));

                }

            } catch (Exception e) {

                e.printStackTrace();

            }

            return Njarray;

        }

    }



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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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