Android-具有各种动态内容的RecyclerView,每个项目各不相同 [英] Android - RecyclerView with various dynamic content, different for each item

查看:219
本文介绍了Android-具有各种动态内容的RecyclerView,每个项目各不相同的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一些来自rest api的json集合,它定义了各种参数类型,例如:

  • 具有值集合(字符串或具有某些字段的某些类对象)的纺纱机
  • 具有日期值的日期时间字段
  • 文本编辑字段
  • 一组复选框(复选框由ID,名称-标题,状态选中/未选中定义)
  • 单选按钮集

每个参数也被命名.

我需要的是:可视化项目列表(每个项目都是上述类型的一个),让用户调整每个项目的值,检索集合(采用相同的json格式),然后将修改后的json发布到服务器./p> 我考虑过的

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

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

解决方案

这类似于我所做的工作.您需要创建不同的查看器,并根据集合中每个项目所需的输入类型来创建类型.

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

检查一下: https://guides.codepath.com/android/Heterogenous-Layouts-inside- RecyclerView

我曾经使用TextWatcher来拦截用户对文本的编辑,对单选按钮的checkchangelistener,带有文本视图的DateTimePicker的更改,以显示日期和时间.

在edittext中使用textwatcher: 如何获取在Android中使用Text Watcher从Recycler View适配器编辑文本位置

I have some json collection got from rest api, it defines various parameter types, like:

  • spinner with values collection (of string or some class objects with some fields)
  • date time field with date value
  • text edit field
  • set of check boxes (check box defined by id, name - caption, state checked/unchecked)
  • set of radio buttons

Each parameter is also named.

What I need: visualise list of items (each item will be one from types described above), let user to adjust values for each of them, retrieve collection (in the same json format) and post modified json to server.

Firs approach I've considered is to dynamically add controls to my layout inside scroll view, corresponding to item type. But I feel this is not good approach, maybe better to user RecyclerView and custom list.

Do you have any ideas how to construct list like that? Afaik Android RecyclerView assumes each list item to have the same layout, is it possible to get what I need?

解决方案

This is something similar to what I had worked on. You'll need to create different viewholders and create types based on type of input required for each item in the collection.

In order to get the latest values user has entered, have them stored in the model class dedicated for the json response, map them and send them back to server.

Check this out : https://guides.codepath.com/android/Heterogenous-Layouts-inside-RecyclerView

I had used TextWatcher to intercept changes made by user to edittext, checkchangelistener for radiobuttons, DateTimePicker with a textview to show date and time.

Use of textwatcher in edittext : How to get the Edit text position from Recycler View adapter using Text Watcher in android

这篇关于Android-具有各种动态内容的RecyclerView,每个项目各不相同的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆