Удалить определенную страницу позиции из адаптера страницы, который использует layout.swipe

У меня здесь проблема. В последнее время я работаю над проектом, похожим на трут, но это не так уж и много. То, что я делаю, проще.

Существует страница с прокруткой, которая может скользить по другой странице. Вы можете нажать нравится или не нравится на каждой странице.

То, что я хочу сделать здесь, - когда они нажимают на кнопку "Мне нравится", эта страница исчезает и автоматически переходит на следующую страницу.

Я создал слайд-страницу с кнопками "Нравится" и "Не нравится", но теперь проблема в том,

Как я могу сделать кнопку лайка по клику, и эта страница исчезнет, ​​и она автоматически перейдет на следующую страницу.

Ниже я прикреплю адаптер пейджера, надеюсь, кто-нибудь может мне помочь. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Большое спасибо заранее.

PagerAdapter

package com.example.lenovo.maidfriends;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;

import com.squareup.picasso.Picasso;



import java.util.ArrayList;

import static android.widget.Toast.LENGTH_SHORT;

/**
 * Created by lenovo on 8/3/2017.
 */

public class CustomAdapter extends PagerAdapter{
    Activity activity;
    ArrayList<ImageData> images = new ArrayList<>();
    LayoutInflater inflater;

    public CustomAdapter(Activity activity, ArrayList<ImageData> images){
        this.activity = activity;
        this.images = images;
    }

    @Override
    public int getCount() {
        return images.size();
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view==object;
    }

    @Override
    public int getItemPosition(Object object) {
        // refresh all fragments when data set changed
        return PagerAdapter.POSITION_NONE;
    }

    @Override
    public Object instantiateItem(final ViewGroup container, final int position) {
        inflater = (LayoutInflater)activity.getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        final View itemView = inflater.inflate(R.layout.swipe,container,false);

        ImageView image;
        image = (ImageView)itemView.findViewById(R.id.imageView);
        Button like;
        like = (Button) itemView.findViewById(R.id.button6);

        DisplayMetrics dis = new DisplayMetrics();
        activity.getWindowManager().getDefaultDisplay().getMetrics(dis);
        int height = dis.heightPixels;
        int width = dis.widthPixels;
        image.setMinimumHeight(height);
        image.setMinimumWidth(width);

        final String url = images.get(position).getImageUrl();

        image.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View view){
                String clickedId = images.get(position).getId();
                // Do something with the selected image Id
                Intent intent=new Intent(view.getContext(),viewPersonal.class);
                Bundle b = new Bundle();
                b.putString("myID", clickedId);
                b.putString("myImage",url);
                intent.putExtras(b);
                view.getContext().startActivity(intent);
            }
        });

        like.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //Remove the current possition page and make next page to current page
            }
        });

        try{
            Picasso.with(activity.getApplicationContext())
                    .load(url)
                    .placeholder(R.mipmap.ic_launcher)
                    .error(R.mipmap.ic_launcher)
                    .into(image);
        }catch (Exception ex){

        }

        container.addView(itemView);
        return itemView;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        ((ViewPager) container).removeView((View)object);
    }

}

1 ответ

Попробуй вот так

images.remove(postion); // This will remove that current page in ViewPager
notifyDataSetChanged(); // This will reload viewpager
Другие вопросы по тегам