Удалить определенную страницу позиции из адаптера страницы, который использует 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