首页 > 解决方案 > 在 Android 中显示细节的最有效方式

问题描述

在活动中显示模型字段信息的最有效方式是什么?就像下图一样,他们是使用视图组(LinearLayout、RelativeLayout、ConstraintLayout)手动创建每个字段,还是使用 RecyclerView 生成?如果这是使用 RecyclerView 制作的,如何实现?

图片

更新(如果我们使用 RecyclerView):-
谢谢您的回复,我认为你们是对的,如果我想像图片示例中那样实现,我应该使用 LinearLayout。但就我而言,我有很多数据,50 个字段,我不想为每个字段手动创建 1 个 ViewGroup。在我的示例中,我只会为我的用户模型使用 4 个字段,这些项目纯粹用于查看,没有其他视图类型,也没有特定功能。

用户模型字段:
-Name
-Age
-Gender
-Address

我希望每个用户字段都作为 recyclerview 中的一个项目,但由于我的 UserModel 不是列表,我无法将它提供给 RecyclerView。下图是我想要实现的。抱歉,如果我的问题有点模棱两可,我很难解释我的问题。

我想实现

标签: androidandroid-studiolayoutandroid-recyclerview

解决方案


正如您在评论中向我解释的那样。

  • 您有一个模型类 USER,它有 50 个字段。
  • 如果项目看起来像在屏幕截图中一样。

如果是这样的话,用Simple RecyclerView就可以轻松解决,甚至不用ViewType

您的 ItemView 有一个徽标、一个标题和一个描述。

1) 为列表中的项目创建一个新模型。

class ListItem{

   int logo;
   int title;
   int desc;

   // write getter and setter

}

2)填充列表?

从模型中获取数据User并将其转换为ListItem模型
假设第一项是用户的姓名。
这样做

 ListItem username = new ListItem();
   username.setTitle("NAME");
   username .setLogo(R.id.userLogo);
   username.setDesc(user.name);

假设第二项是用户的年龄

这样做

 ListItem age = new ListItem();
   age.setTitle("AGE");
   username .setLogo(R.id.ageLogo);
   username.setDesc(user.age);

3) 在适配器中输入 itemList

List<ListItem> myList = new List<ListItem>();
myList.add(username);
myList.add(age);

YourAdapter adapter = new Adapter(context,myList);
recyclerView.setAdapter(adapter);

希望这可以帮助。和平:)


推荐阅读