使用RecyclerView展示活动列表

实体类

创建实体类存放item名称、图片和所要跳转对应的活动

public class ModelMainItem {
    private String name;
    private int image;
    public ModelMainItem(String name, int image) {
        this.name = name;
        this.image = image;
    }
    public ModelMainItem(String name, int image, Class activity) {
        this.name = name;
        this.image = image;
        this.activity = activity;
    }
    public Class getActivity() {
        return activity;
    }
    public void setActivity(Class activity) {
        this.activity = activity;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getImage() {
        return image;
    }
    public void setImage(int image) {
        this.image = image;
    }

Activity

使用集合添加添加所有跳转的活动

 private List<ModelMainItem> demoClassifyData;
demoClassifyData = new ArrayList<>();
demoClassifyData.add(new ModelMainItem("MarkdownEdit", R.drawable.muz, MarkdownEditActivity.class));
demoClassifyData.add(new ModelMainItem("MarkdownShow", R.drawable.muz, MarkdownShowActivity.class));

设置RecyclerView列数

 private int mColumnCount = 3;

判断设置的列数是否<=1;

if (mColumnCount <= 1) {
 markdownClassify.setLayoutManager(new LinearLayoutManager(this));
    } else {
 markdownClassify.setLayoutManager(new GridLayoutManager(this, mColumnCount));
    }

创建适配器

public class AdapterRecyclerViewMain extends RecyclerView.Adapter<AdapterRecyclerViewMain.ViewHolder> {
    private int mScreenWidth, mItemWidth, mItemHeight;
    private Context context;
    private List<ModelMainItem> mValues;
    public AdapterRecyclerViewMain(List<ModelMainItem> items) {
        mValues = items;
    }
 @Override
    public AdapterRecyclerViewMain.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_recyclerview_main, parent, false);
        context = view.getContext();
        return new ViewHolder(view);
    }
    @Override
    public void onBindViewHolder(final ViewHolder holder, final int position) {
        holder.mItem = mValues.get(position);
 holder.tvName.setText(holder.mItem.getName());
 Glide.with(context).
 load(holder.mItem.getImage()).
 diskCacheStrategy(DiskCacheStrategy.RESULT).
 thumbnail(0.5f).
 priority(Priority.HIGH).
 placeholder(R.drawable.muz).
 error(R.drawable.muz).
 fallback(R.drawable.muz).
 into(holder.imageView);
 holder.mView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
 skipActivity(context, holder.mItem.getActivity());
            }
        });
    }
    /**
     * Activity 跳转
     *
     * @param context
     * @param goal
     */
    public static void skipActivity(Context context, Class<?> goal) {
        Intent intent = new Intent(context, goal);
 context.startActivity(intent);
    }
    @Override
    public int getItemCount() {
        return mValues.size();
    }
    public class ViewHolder extends RecyclerView.ViewHolder {
        public final View mView;
        public ModelMainItem mItem;
 @BindView(R.id.imageView)
        ImageView imageView;
 @BindView(R.id.tv_name)
        TextView tvName;
        public ViewHolder(View view) {
            super(view);
            mView = view;
 ButterKnife.bind(this, view);
        }
    }

xml布局

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:paddingEnd="0dp"
 android:paddingLeft="0dp"
 android:paddingRight="0dp"
 android:paddingStart="0dp"
 app:cardCornerRadius="4dp"
 app:cardElevation="3dp">
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:background="@color/white"
 android:gravity="center_horizontal"
 android:orientation="vertical">
        <ImageView
 android:id="@+id/imageView"
 android:layout_width="80dp"
 android:layout_margin="10dp"
 android:layout_height="80dp"
 app:srcCompat="@drawable/muz" />
        <TextView
 android:textSize="10dp"
 android:id="@+id/tv_name"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:padding="10dp"
 android:gravity="center_horizontal"
 android:textColor="@color/black"
 android:text="TextView" />
    </LinearLayout>
</android.support.v7.widget.CardView>

绑定适配器

 AdapterRecyclerViewMain recyclerViewMain = new AdapterRecyclerViewMain(demoClassifyData);
 demoClassify.setAdapter(recyclerViewMain);

发表评论

电子邮件地址不会被公开。 必填项已用*标注