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

当更改 GridView 的行时,它会显示第一个图像

当更改 GridView 的行时,它会显示第一个图像

繁星coding 2022-06-04 16:44:16
在我的应用程序中,我只能上传五张图片,当我上传 3 或 5 张时它工作正常,但是当我只上传四张图片(然后换行)时,它在位置 3 和位置 0 上显示相同的图像。 public void showList(final JSONArray responsearray) {    try {        for (int i = 0; i < responsearray.length(); i++) {            JSONObject responseObject = responsearray.getJSONObject(i);            Log.e("COUNT" + i, String.valueOf(responseObject));            imageOne = responseObject.getString(TAG_PHOTO_ONE);            get = new HashMap<>();            get.put(TAG_PHOTO_ONE, imageOne);            myList.add(get);        }        adapter = new SimpleAdapter(getActivity(), myList, R.layout.row_more_images,                new String[]{TAG_PHOTO_ONE},                new int[]{R.id.photo1}) {            @Override            public View getView(int position, View convertView, ViewGroup parent) {                final View v = super.getView(position, convertView, parent);                if (convertView == null) {                    TextView photo1 = v.findViewById(R.id.photo1);                    photoOne = v.findViewById(R.id.photo_one);                    String imgPath = getString(R.string.moreimgpath);                    if (!photo1.getText().toString().equalsIgnoreCase("null")) {                        final_image_url = imgPath + photo1.getText().toString();                        Log.e("FINALPATH", final_image_url);                        ImageLoader.getInstance().displayImage(final_image_url, photoOne, options, animateFirstListener);                    }                }                return v;            }        };        if (gridview.getAdapter() == null) {            gridview.setAdapter(adapter);        }        gridview.setOnItemClickListener(this);    } catch (JSONException e) {        e.printStackTrace();    } catch (NullPointerException e) {        e.printStackTrace();    }}
查看完整描述

2 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

我做了这个问题,只需添加 :-adapter.notifyDataSetChanged(); gridview.invalidateViews(); 在 if 条件下(convertView==null)


 public void showList(final JSONArray responsearray) {

try {

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

        JSONObject responseObject = responsearray.getJSONObject(i);

        Log.e("COUNT" + i, String.valueOf(responseObject));

        imageOne = responseObject.getString(TAG_PHOTO_ONE);

        get = new HashMap<>();

        get.put(TAG_PHOTO_ONE, imageOne);

        myList.add(get);

    }

    adapter = new SimpleAdapter(getActivity(), myList, R.layout.row_more_images,

            new String[]{TAG_PHOTO_ONE},

            new int[]{R.id.photo1}) {

        @Override

        public View getView(int position, View convertView, ViewGroup parent) {

            final View v = super.getView(position, convertView, parent);

            if (convertView == null) {

                TextView photo1 = v.findViewById(R.id.photo1);

                photoOne = v.findViewById(R.id.photo_one);

                String imgPath = getString(R.string.moreimgpath);

                if (!photo1.getText().toString().equalsIgnoreCase("null")) {

                    final_image_url = imgPath + photo1.getText().toString();

                    Log.e("FINALPATH", final_image_url);

                    ImageLoader.getInstance().displayImage(final_image_url, photoOne, options, animateFirstListener);

                }

                    adapter.notifyDataSetChanged();

                    gridview.invalidateViews();

            }

            return v;

        }

    };

    if (gridview.getAdapter() == null) {

        gridview.setAdapter(adapter);

    }

    gridview.setOnItemClickListener(this);

} catch (JSONException e) {

    e.printStackTrace();

} catch (NullPointerException e) {

    e.printStackTrace();

}}


查看完整回答
反对 回复 2022-06-04
?
浮云间

TA贡献1829条经验 获得超4个赞

将代码更改为


 public void showList(final JSONArray responsearray) {

        try {

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

                JSONObject responseObject = responsearray.getJSONObject(i);

                Log.e("COUNT" + i, String.valueOf(responseObject));

                String imageOne = responseObject.getString(TAG_PHOTO_ONE);

                HashMap<> get = new HashMap<>();

                get.put(TAG_PHOTO_ONE, imageOne);

                myList.add(get);

            }

            adapter = new SimpleAdapter(getActivity(), myList, R.layout.row_more_images,

                    new String[]{TAG_PHOTO_ONE},

                    new int[]{R.id.photo1}) {

                @Override

                public View getView(int position, View convertView, ViewGroup parent) {

                    final View v = super.getView(position, convertView, parent);

                    if (convertView == null) {

                        TextView photo1 = v.findViewById(R.id.photo1);

                        ImageView photoOne = v.findViewById(R.id.photo_one);

                        String imgPath = getString(R.string.moreimgpath);

                        if (!photo1.getText().toString().equalsIgnoreCase("null")) {

                            final_image_url = imgPath + photo1.getText().toString();

                            Log.e("FINALPATH", final_image_url);

                            ImageLoader.getInstance().displayImage(final_image_url, photoOne, options, animateFirstListener);

                        }

                    }

                    return v;

                }

            };

            if (gridview.getAdapter() == null) {

                gridview.setAdapter(adapter);

            }

    else{

    notfyDataSetChanged();

    }

            gridview.setOnItemClickListener(this);

        } catch (JSONException e) {

            e.printStackTrace();

        } catch (NullPointerException e) {

            e.printStackTrace();

        }

    }


查看完整回答
反对 回复 2022-06-04
  • 2 回答
  • 0 关注
  • 87 浏览

添加回答

举报

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