Для обновления элемента в адаптере внутри просмотра страницы - PullRequest
0 голосов
/ 01 октября 2019

Я изо всех сил пытаюсь найти решение для этого. У меня есть gridView внутри просмотра одной страницы. Мне нужно загрузить изображение из галереи и загрузить на сервер. У меня нет идеи загружать на gridview элемент

Вот ясная картинка. Viewpager -> две вкладки -> макет одной вкладки с сеткой изображений. вторая вкладка макета с другими полями ввода.

Теперь откройте макет 1 в новом адаптере и установите изображения. Теперь, как установить новое изображение галереи в этом представлении изображения. как это на 2-м слое. Фрагмент-> 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 Adapter

@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 голосов
/ 01 октября 2019

Выполните следующие действия:

  1. Получить изображение из галереи [вы все делаете правильно]

    business.image.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        ImproveListingFragment.loadImagefromGallery(position);
    }
    });
    
  2. Создание глобальной переменнойиз vBannerPic

  3. Назначьте изображение, полученное из галереи, этой переменной

  4. и затем вызовите recyclerViewAdapter.notifyDataSetChanged();

...