mainActivity

package com.example.applicationlx3;

import com.example.applicationlx3.model.DataBeans;

import java.util.List;

/**
 * author:Created by WangZhiQiang on 2018/6/23.
 */

public interface DataView {
    void showData(List<DataBeans.DataBeanX.DataBean> list);

}

*****************************************************

package com.example.applicationlx3;

import android.animation.ObjectAnimator;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;

import com.example.applicationlx3.model.DataBeans;
import com.example.applicationlx3.presenter.DataPresenterImp;

import java.util.List;

public class MainActivity extends AppCompatActivity implements DataView {

    DataPresenterImp dataPresenterImp;
    private RecyclerView mRv;

    @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) {
        final MyRvAdapter myRvAdapter = new MyRvAdapter(this, list);
        mRv.addItemDecoration(new SpacesItemDecoration(10));
        mRv.setAdapter(myRvAdapter);
        myRvAdapter.setmOnItemClick(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();
    }
}
*************************************************

package com.example.applicationlx3;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.example.applicationlx3.model.DataBeans;

import java.util.List;

/**
 * author:Created by WangZhiQiang on 2018/6/23.
 */

class MyRvAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    Context context;
    List<DataBeans.DataBeanX.DataBean> list;
    LayoutInflater inflater;
    int NORMAL = 1;
    int IMAGES = 2;
    String imageSplice = "http://365jia.cn/uploads/";

    public MyRvAdapter(Context context, List<DataBeans.DataBeanX.DataBean> list) {
        this.context = context;
        this.list = list;
        inflater = LayoutInflater.from(context);
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(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(RecyclerView.ViewHolder holder, final int position) {
        int itemViewType = getItemViewType(position);
        DataBeans.DataBeanX.DataBean dataBean = list.get(position);
        if (itemViewType == NORMAL){
            NormalViewHolder normaViewHolder = (NormalViewHolder) holder;
            normaViewHolder.normal_title.setText(dataBean.getTitle());
            Glide.with(context).load(imageSplice+dataBean.getPics().get(0)).into(normaViewHolder.normal_img);
            normaViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (mOnItemClick != null){
                        mOnItemClick.onItemClick(position);
                    }
                }
            });
        }else if (itemViewType == IMAGES){
            ImagesViewHolder imagesViewHolder = (ImagesViewHolder) holder;
            imagesViewHolder.images_text.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() {
                @Override
                public void onClick(View v) {
                    if (mOnItemClick != null){
                        mOnItemClick.onItemClick(position);
                    }
                }
            });
        }
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    public int getItemViewType(int position){
        String type = list.get(position).getType();
        if ("images".equals(type)){
            return IMAGES;
        }else{
            return NORMAL;
        }
    }

    private class NormalViewHolder extends RecyclerView.ViewHolder {

        private final TextView normal_title;
        private final ImageView normal_img;

        public NormalViewHolder(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() {
                @Override
                public void onClick(View v) {
                    if (mOnItemClick != null){
                        mOnItemClick.onImageClick(v);
                    }
                }
            });

        }
    }
    class ImagesViewHolder extends RecyclerView.ViewHolder{

        private final ImageView images01,images02,images03;
        private final TextView images_text;

        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_text = itemView.findViewById(R.id.images_title);
            images01.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (mOnItemClick != null){
                        mOnItemClick.onImageClick(v);
                    }
                }
            });
            images02.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (mOnItemClick != null){
                        mOnItemClick.onImageClick(v);
                    }
                }
            });
            images03.setOnClickListener(new View.OnClickListener() {
                @Override
                public 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 setmOnItemClick(OnItemClick mOnItemClick) {
        this.mOnItemClick = mOnItemClick;
    }
    public void deleteItem(int position){
        list.remove(position);
    };
}
***************************************



package com.example.applicationlx3;

import android.graphics.Rect;
import android.support.v7.widget.RecyclerView;
import android.view.View;

/**
 * author:Created by WangZhiQiang on 2018/6/23.
 */

public class SpacesItemDecoration extends RecyclerView.ItemDecoration {
    int space;

    public SpacesItemDecoration(int space) {
        this.space = space;
    }

    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
        outRect.left = space;
        outRect.right = space;
        outRect.bottom = space;

        if (parent.getChildPosition(view) == 0){
            outRect.top = space;
        }
    }
}
*************************************************



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值