【问题标题】:Android - RecyclerView with various dynamic content, different for each itemAndroid - 具有各种动态内容的 RecyclerView,每个项目都不同
【发布时间】:2019-04-01 15:29:57
【问题描述】:

我有一些从rest api得到的json集合,它定义了各种参数类型,比如:

  • 带有值集合的微调器(字符串或具有某些字段的某些类对象)
  • 带有日期值的日期时间字段
  • 文本编辑字段
  • 复选框集(由 id、名称 - 标题、选中/未选中状态定义的复选框)
  • 单选按钮集

每个参数也被命名。

我需要什么:可视化项目列表(每个项目将是上述类型中的一个),让用户调整每个项目的值,检索集合(以相同的 json 格式)并将修改后的 json 发布到服务器。

我考虑的第一种方法是动态地将控件添加到滚动视图内的布局中,对应于项目类型。但我觉得这不是一个好方法,可能对用户 RecyclerView 和自定义列表更好。

您对如何构建这样的列表有任何想法吗? Afaik Android RecyclerView 假设每个列表项具有相同的布局,是否有可能得到我需要的?

【问题讨论】:

    标签: java android android-recyclerview


    【解决方案1】:

    这与我之前的工作类似。您需要创建不同的视图,并根据集合中每个项目所需的输入类型创建类型。

    为了获取用户输入的最新值,将它们存储在专用于 json 响应的模型类中,映射它们并将它们发送回服务器。

    看看这个: https://guides.codepath.com/android/Heterogenous-Layouts-inside-RecyclerView

    我曾使用 TextWatcher 拦截用户对 edittext 所做的更改,checkchangelistener 用于单选按钮,DateTimePicker 使用 textview 来显示日期和时间。

    在 edittext 中使用 textwatcher : How to get the Edit text position from Recycler View adapter using Text Watcher in android

    【讨论】:

    • 谢谢,有趣的方法,你有没有在 GitHub 等的某个地方发布完整的代码(我的意思是完整的示例项目)
    • 您的解决方案运行良好,感谢您的提示。不,是时候放置带有值的编辑文本和其他控件并尝试检索用户更改了。
    • 现在我需要验证 eneterd 值,我创建了新问题:stackoverflow.com/questions/55449794/… 有什么想法吗?
    • 贴出你到目前为止所做的代码。我会对可以采取的最佳方法有一个公平的想法。在此处更新您的问题。
    • 对不起,正确的链接在这里:stackoverflow.com/questions/56054259/… - 我的想法,将hasError 字段添加到参数定义中,然后在configureViewHolder 中检查此字段,如果设置,设置错误以控制。在validate 方法中,我需要调用notifyDatasetChanged 来强制recyclerview 刷新。
    猜你喜欢
    • 1970-01-01
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多