【问题标题】:Map values between different data sources在不同数据源之间映射值
【发布时间】:2011-06-16 21:22:13
【问题描述】:

是否有机会在 android contentprovider 和基于 JSON 的服务器之间同步数据(在本例中为联系人)?

我的问题是,android 使用光标和其他东西,而另一方面我有 JSON 格式。第二个问题:同一个值现在有两个不同的名称,所以我需要在两个不同数据源中的值之间进行一种映射。

我的第一个方法是定义一个“用户”类。我将有不同的方法来填充数据和不同的方法来取回数据。问题是,使用这种方法,我必须在每个方法中进行 android contentprovider 和 JSON 服务器之间的映射,例如

AndroidContact->(Mapping)->User-Object->(Mapping)->JSON-Format

JSON-Format->(Mapping)->-User-Object->(Mapping)->AndroidContact

如您所见,在整个通信过程中,我至少需要进行四次映射,这真的很让人头疼,因为我正在同步联系人可以拥有的所有信息,这是相当多的。

所以我正在寻找一种巧妙的方法来将我的 android 联系人与 JSON 服务器同步,而无需多次定义整个映射内容。

希望我能说清楚,我在寻找什么。如果没有,请随时询问。

干杯 L0rdAli3n

【问题讨论】:

    标签: android json contacts contactscontract


    【解决方案1】:

    又在网上搜索我的问题的现有解决方案(我不想重新发明轮子)后,我想出了以下解决方案:

    我添加了一个 MappingContentProvider 来保存映射信息,所有那些用数据填充用户类或从中获取数据的方法现在都可以使用它了。

    【讨论】:

      【解决方案2】:

      您可以使用 MatrixCursor 以 xml 或 json 格式返回您拥有的数据。

      MatrixCursor:由对象数组支持的可变游标实现。

      final MatrixCursor cursor = new MatrixCursor(SEARCH_COLUMN_NAMES);              
      for (OpenSearchHandler.Result result : results) {                       
           cursor.addRow(new Object[] { result.id, result.title, result.description, result.url });
      }
      

      【讨论】:

        猜你喜欢
        • 2020-05-29
        • 1970-01-01
        • 2021-02-07
        • 1970-01-01
        • 1970-01-01
        • 2021-07-22
        • 1970-01-01
        • 2021-02-03
        • 2014-06-12
        相关资源
        最近更新 更多