要更新视图分页器内部适配器中的项目,

时间:2019-10-01 05:05:11

标签: android android-viewpager android-gridview

我正在努力寻求解决方案。 我有一个gridView内部视图页面一页。我需要从图库中上传图像并将其加载到服务器。 我不知道要在gridview项上上传

这是清晰的图片。 Viewpager->两个选项卡->一个选项卡布局,带有图像网格视图。 具有其他输入字段的第二个标签布局。

现在在新的适配器中打开布局1并设置图像。现在,如何在该图像视图中设置新的画廊图像。因为这是在第二层。 片段-> viewpagerAdapter-> gridView适配器,其中包含图像网格视图。 下面的代码在PagerAdapter中

 @Override
public Object instantiateItem(ViewGroup container, int position) {
   // return super.instantiateItem(container, position);
    // Using different layouts in the view pager instead of images.
    LayoutInflater inflater = (LayoutInflater) container.getContext()
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    int resId = -1;

    View view = null;

 switch (position) {
        case 0:
            resId = R.layout.activity_image_banner;
            view = inflater.inflate(resId, container, false);
             recyclerView = view.findViewById(R.id.banneregridView);

            GridLayoutManager trend_manager = new GridLayoutManager(context, 2, RecyclerView.VERTICAL, false);
            recyclerView.setLayoutManager(trend_manager);
            recyclerView.setItemAnimator(new DefaultItemAnimator());

            BannerDetailsAdapter bannerDetailsAdapter  = new    BannerDetailsAdapter(activity,context, vBannerPic);
            recyclerView.setAdapter(bannerDetailsAdapter);


            break;

        case 1:

        resId = R.layout.improvelisting_details_layout;
        view = inflater.inflate(resId, container, false); 

这是recycleView适配器

@Override
public void onBindViewHolder(@NonNull  BannerDetailsAdapter.Business business, final int position) {

    IL_BusinessProfileBanner businessPojo  = businessDataPojoList.get(position);
    Log.e("Position is-", "--" + businessPojo.getVBannerPic());

  //  business.image.setBackgroundResource(R.drawable.logo);


    Glide.with(context.getApplicationContext()).
            load(businessPojo.getVBannerPic())
            .into(business.image);

    business.image.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ImproveListingFragment.loadImagefromGallery(position);
        }
    });

1 个答案:

答案 0 :(得分:0)

请按照以下步骤操作:

  1. 从图库中获取图片[您做对了]

    business.image.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        ImproveListingFragment.loadImagefromGallery(position);
    }
    });
    
  2. 创建一个vBannerPic

  3. 的全局变量
  4. 将您从图库获得的图像分配给该变量

  5. ,然后致电recyclerViewAdapter.notifyDataSetChanged();