使用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);

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
感谢您的问题。根据您的问题,您似乎需要了解如何使用Android Studio进行开发,并在应用中实现一些常见的功能。以下是对您的问题的回答: 1. 使用Android Studio创建项目: 首先,您需要安装Android Studio,然后打开它并点击“Create New Project”按钮。在弹出的对话框中,您需要选择应用程序名称、包名、项目位置等信息,并选择目标API级别和最低API级别。然后,您可以选择使用活动或其他模板,并点击“Finish”按钮来创建项目。 2. 使用Activity创建页面并绑定XML部局: 在Android Studio中,您可以使用Activity模板来创建新的Activity。在创建Activity时,您可以选择使用空布局或其他模板,并在Java文件中编写逻辑代码,同时在XML布局文件中定义UI元素和样式。要在Activity中绑定XML布局,您需要使用setContentView方法,并传递布局文件的ID作为参数。 3. 使用Fragment完成交互功能: Fragment是Android中的一种UI组件,用于构建灵活且可重用的UI部件。要使用Fragment,您需要创建一个继承自Fragment类的Java类,并在XML布局文件中定义Fragment的UI元素和样式。然后,在Activity中使用FragmentManager将Fragment添加到Activity中,并在Fragment中编写逻辑代码以实现交互功能。 4. 使用RecyclerView展示列表功能: RecyclerViewAndroid中的一种UI组件,用于展示可滚动列表。要使用RecyclerView,您需要创建一个继承自RecyclerView.Adapter类的Java类,并在其中定义每个列表项的UI元素和数据。然后,在Activity或Fragment中实例化RecyclerView,并将Adapter与RecyclerView绑定。 5. 使用Service或WorkerManager完成后台任务: Service是Android中的一种组件,用于在后台执行长时间运行的任务,例如下载文件或播放音乐。WorkManager是Android中的一种库,用于在后台执行延迟任务或定期任务。要使用Service或WorkManager,您需要创建一个继承自Service或Worker类的Java类,并在其中编写逻辑代码以执行任务。 6. 访问网络进行数据交互: 要访问网络并进行数据交互,您可以使用Android中的HttpURLConnection或OkHttp等库。在Java代码中,您可以使用这些库来发起HTTP请求,并从服务器接收响应。然后,您可以解析响应并更新UI或存储数据。 7. 多媒体数据浏览或处理: 要浏览或处理多媒体数据,例如图片、音频或视频,您可以使用Android中的多媒体库。在Java代码中,您可以使用这些库来访问设备上的多媒体文件,并在UI中显示或播放它们。 8. 使用Sqlite数据库存储数据(ROOM): 要使用Sqlite数据库存储数据,您可以使用Android中的SqliteOpenHelper或Room等库。在Java代码中,您可以使用这些库来创建数据库表、插入数据、查询数据等操作。 9. 使用DataBinding进行数据绑定: DataBinding是Android中的一种库,用于将UI元素与数据模型绑定。它可以帮助您减少编写模板代码的量,并提高代码的可读性和可维护性。要使用DataBinding,您需要在XML布局文件中使用特定的语法来定义绑定关系,并在Java代码中使用DataBindingUtil类来绑定数据模型。 10. 使用Material Design组件: Material Design是Google提出的一种设计风格,用于创建美观且易于使用的应用程序。要使用Material Design组件,您可以使用Android中的Material Design库。在Java代码中,您可以使用这些库来实现各种UI元素,例如按钮、卡片、对话框等。 11. 完善的应用功能和UI交互: 要实现完善的应用功能和UI交互,您需要仔细设计应用程序的用户界面和交互流程,并使用适当的UI组件和导航模式。同时,您需要测试应用程序,确保它能够正常运行,并提供良好的用户体验。 12. 界面要求简洁美观: 为了使应用程序具有吸引力和易用性,您需要仔细设计应用程序的用户界面,并使用适当的颜色、字体和布局来创建简洁美观的UI。 13. 系统设计与开发文档详细: 为了确保应用程序的可维护性和可扩展性,您需要编写详细的系统设计和开发文档。这些文档应包括应用程序的架构、数据模型、UI设计、代码逻辑等方面的详细说明。 14. 更多创意和能力自由发挥: 在应用程序的开发过程中,您可以尝试使用新的技术和库,并通过创意和能力自由发挥,来实现更加创新和令人惊叹的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值