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; } } }*************************************************