有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从使用布局的页面适配器中删除特定位置页面。刷卡

我这里有个问题。最近我在做一个像tinder这样的项目,但这并不是一个进步。我所做的更简单

有一个滑动页面可以滑动到不同的页面。您可以在每页中按“喜欢”或“不喜欢”

我想在这里做的是,当他们点击like按钮时,该页面将消失,并自动转到下一页

我用喜欢和不喜欢按钮创建了幻灯片页面,但现在的问题是

我怎样才能使like按钮再次单击,该页面将消失,并自动转到下一页

我将在下面连接我的寻呼机适配器,希望有人能帮助我。如果你需要更多的信息,请告诉我。非常感谢

寻呼机

package com.example.lenovo.maidfriends;

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

import com.squareup.picasso.Picasso;



import java.util.ArrayList;

import static 安卓.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) 个答案

  1. # 1 楼答案

    试试这个

    images.remove(postion); // This will remove that current page in ViewPager
    notifyDataSetChanged(); // This will reload viewpager