100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > MVP+RecyclerView多条目+OkHttp(get和post请求方法)+属性动画+imageLoader加载图片

MVP+RecyclerView多条目+OkHttp(get和post请求方法)+属性动画+imageLoader加载图片

时间:2022-01-09 17:22:25

相关推荐

MVP+RecyclerView多条目+OkHttp(get和post请求方法)+属性动画+imageLoader加载图片

//MainActivity类public class MainActivity extends AppCompatActivity implements DataView {private RecyclerView mRv;private DataPresenterImp dataPresenterImp;private MyRvAdapter myRvAdapter;//数据集合 private List<String >list=new ArrayList<>();//获取数据的开始 private int curr;@Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mRv = findViewById(R.id.rv);LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);mRv.setLayoutManager(linearLayoutManager);dataPresenterImp = new DataPresenterImp(this);dataPresenterImp.showData("1");}@Override public void showData(List<DataBeans.DataBeanX.DataBean> list) {//适配器 myRvAdapter = new MyRvAdapter(this, list);mRv.addItemDecoration(new SpacesItemDecoration(10));mRv.setAdapter(myRvAdapter);myRvAdapter.setOnItemClick(new MyRvAdapter.OnItemClick() {@Override public void onImageClick(View view) {ObjectAnimator alpha = ObjectAnimator.ofFloat(view, "alpha", new float[]{1f, 0.5f, 0.0f, 0.5f, 1.0f});alpha.setRepeatMode(ObjectAnimator.RESTART);alpha.setDuration(2000);alpha.setRepeatCount(0);alpha.start();}@Override public void onItemClick(int position) {//弹出框showAlertDialog(position);}});}private void showAlertDialog(final int position) {AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);builder.setTitle("提示:");builder.setMessage("请问你要删除吗?");builder.setIcon(R.mipmap.ic_launcher_round);//点击对话框以外的区域是否让对话框消失 builder.setCancelable(false);//设置正面按钮 builder.setPositiveButton("是的", new DialogInterface.OnClickListener() {@Override public void onClick(DialogInterface dialog, int which) {myRvAdapter.deleteItem(position);myRvAdapter.notifyDataSetChanged();dialog.dismiss();}});//设置反面按钮 builder.setNegativeButton("不是", new DialogInterface.OnClickListener() {@Override public void onClick(DialogInterface dialog, int which) {dialog.dismiss();}});AlertDialog dialog = builder.create();dialog.show();}@Override protected void onDestroy() {super.onDestroy();dataPresenterImp.cloneView();}}//MainActivity副本

<android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/rv"/>//MyRvAdapter适配器

public class MyRvAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {private String imageSplice = "/uploads/";private Context context;private List<DataBeans.DataBeanX.DataBean> list;private LayoutInflater inflater;private final static int NORMAL = 1;private final static int IMAGES = 2;public MyRvAdapter(Context context, List<DataBeans.DataBeanX.DataBean> list) {this.context = context;this.list = list;inflater = LayoutInflater.from(context);}@NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {RecyclerView.ViewHolder holder;if(viewType == NORMAL){View view = inflater.inflate(R.layout.normal_item,parent,false);holder = new NormalViewHolder(view);}else if(viewType == IMAGES){View view = inflater.inflate(R.layout.images_item,parent,false);holder = new ImagesViewHolder(view);}else{holder = null;}return holder;}@Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int position) {int itemViewType = getItemViewType(position);DataBeans.DataBeanX.DataBean dataBean = list.get(position);if(itemViewType == NORMAL){NormalViewHolder normalViewHolder = (NormalViewHolder) holder;normalViewHolder.normal_title.setText(dataBean.getTitle());Glide.with(context).load(imageSplice+dataBean.getPics().get(0)).into(normalViewHolder.normal_img);normalViewHolder.itemView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(mOnItemClick != null){mOnItemClick.onItemClick(position);}}});}else if(itemViewType == IMAGES){ImagesViewHolder imagesViewHolder = (ImagesViewHolder) holder;imagesViewHolder.images_title.setText(dataBean.getTitle());Glide.with(context).load(imageSplice+dataBean.getPics().get(0)).into(imagesViewHolder.images01);Glide.with(context).load(imageSplice+dataBean.getPics().get(1)).into(imagesViewHolder.images02);Glide.with(context).load(imageSplice+dataBean.getPics().get(2)).into(imagesViewHolder.images03);imagesViewHolder.itemView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(mOnItemClick != null){mOnItemClick.onItemClick(position);}}});}}@Override public int getItemCount() {return list.size();}@Override public int getItemViewType(int position) {String type = list.get(position).getType();if("images".equals(type)){return IMAGES;}else{return NORMAL;}}class NormalViewHolder extends RecyclerView.ViewHolder {private final TextView normal_title;private final ImageView normal_img;public NormalViewHolder(final View itemView) {super(itemView);normal_title = itemView.findViewById(R.id.normal_title);normal_img = itemView.findViewById(R.id.normal_img);normal_img.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(mOnItemClick != null){mOnItemClick.onImageClick(v);}}});}}class ImagesViewHolder extends RecyclerView.ViewHolder{private final ImageView images01;private final ImageView images02;private final ImageView images03;private final TextView images_title;public ImagesViewHolder(View itemView) {super(itemView);images01 = itemView.findViewById(R.id.images01);images02 = itemView.findViewById(R.id.images02);images03 = itemView.findViewById(R.id.images03);images_title = itemView.findViewById(R.id.images_title);images01.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(mOnItemClick != null){mOnItemClick.onImageClick(v);}}});images02.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(mOnItemClick != null){mOnItemClick.onImageClick(v);}}});images03.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(mOnItemClick != null){mOnItemClick.onImageClick(v);}}});}}interface OnItemClick{void onImageClick(View view);void onItemClick(int position);}private OnItemClick mOnItemClick;public void setOnItemClick( OnItemClick onItemClick){this.mOnItemClick = onItemClick;}//删除 public void deleteItem(int poistion){list.remove(poistion);}}// 适配器布局1 normal_item

<LinearLayout xmlns:android="/apk/res/android" android:layout_width="match_parent" android:layout_height="100dp" android:orientation="horizontal"><LinearLayout android

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。