AppSync SDK 与 Amplify Android?
2018 年的那篇博客是在考虑AWS Android AppSync SDK的情况下编写的。AppSync SDK 上的自述文件包括有关从模式文件生成代码的说明。如果您继续关注 2018 年的博客,我会用该文档补充您的练习。
今年,AWS 的公共文档已更新,以将客户指向新的Amplify Android 库。Amplify CLI ( amplify
) 也已更新,可与 Amplify Android 库一起使用。Amplify CLI 当前将生成可供 Amplify Android API和DataStore类别使用的 Java 代码。
TLDR,如果您刚刚开始,我会从AWS Amplify Android 文档的教程部分开始工作。
您还可以在此处关注有关 AppSync 的更新(2020 年 5 月)博客文章。
Iterator<T>
和RecyclerView.Adapater
有很多方法可以将结果传递给适配器,它们的复杂程度各不相同。
最直接的方法是这样的:
首先,用List<SomeModel>
. List<SomeModel>
可以在您创建后更新ItemAdapter
,按设计:
final class ItemAdapter implements RecyclerView.Adapter<ItemHolder> {
private final List<SomeModel> data;
ItemAdapter(List<SomeModel> data) {
this.data = data;
}
}
然后,在 Amplify 回调中,更新List
,并通知适配器数据集已更改:
List<SomeModel> models = new ArrayList<>();
ItemAdapter adapter = new ItemAdapter(models);
Amplify.API.query(SomeModel.class,
iterator -> {
if (!iterator.hasNext()) return;
models.clear();
while (iterator.hasNext()) {
models.add(iterator.next());
}
adapter.notifyDataSetChanged();
},
failure -> {
// As an exercise: display an
// error item into the RecyclerView.
}
);