我在使用Realm 2.0.1版本时发现addAll()方法已经被弃用,我需要一种替代方法来实现从API获取所有数据,将其保存到数据库并传递到我的适配器。 我如何做到这一点?请注意,不要删除任何HTML标记。
public void getData(int page) {
if (GlobalModel.existeConexao()) {
Call<PedidosResponse> call = ((NavigationMain) getActivity()).apiService.getPedidos(GlobalModel.getToken(), GlobalModel.geEmpresaId(), page);
call.enqueue(new Callback<PedidosResponse>() {
@Override
public void onResponse(Call<PedidosResponse> call, Response<PedidosResponse> response) {
if (response.isSuccessful()) {
for (int i = 0; i < response.body().getPedidos().size(); i++) {
Pedidos mPedido = response.body().getPedidos().get(i);
int myInt = (mPedido.isProjecao()) ? 1 : 0;
if (!mRepositorio.checkIfExists(mPedido.getId())) {
mRepositorio.addPedido(mPedido.getId(), mPedido.getCliente_id(), mPedido.getData_hora(), mPedido.getData_pedido_cliente(), mPedido.getPrevisao_entrega(), mPedido.getFrete_tipo(), myInt, mPedido.getObservacao(), mPedido.getAliquota_projecao(), mPedido.getStatus(), mPedido.getPedido_cliente());
}
}
arraypedidos = mRepositorio.findAllPedidos();
if (mPedidosAdapter == null) {
mPedidosAdapter = new PedidosAdapter(getActivity(), arraypedidos);
listpedidos.setAdapter(mPedidosAdapter);
} else {
mPedidosAdapter.setData(arraypedidos);
}
}
}
@Override
public void onFailure(Call<PedidosResponse> call, Throwable t) {
if (t.getMessage() != null) {
Log.v("pedidos", t.getMessage());
}
}
});
} else {
Toast.makeText(getActivity(), "Verifique sua conexão", Toast.LENGTH_SHORT).show();
}
}
但是当我运行应用程序时,我收到了这个信息:
java.lang.UnsupportedOperationException: This method is not supported by RealmResults.
pediosItens
是RealmResult
还是RealmList
的对象? - Mohammed AtifList<Pedidos> pedidosItens = new ArrayList<>()
,因为在 Realm 上执行操作时,RealmResult
或RealmList
更受青睐,但对于其他操作,最好使用List
。 - Mohammed AtifRealmQuery
进行初始化时,应使用RealmResult
,否则您必须使用RealmList
。 - Mohammed Atif