当前位置: 首页 > 知识库问答 >
问题:

如何在volley success MVVM架构上通知UI

罗伟志
2023-03-14
// save data to api

checkInViewModel.updateEventPersonEntity(eventPersonsEntity);
public void updateEventPersonEntity(EventPersonsEntity eventPersonsEntity) {
    mRepository.updateEventPersonEntity(eventPersonsEntity);
}

apprepository.java类

    public void updateEventPersonEntity(EventPersonsEntity eventPersonsEntity) {
        executor.execute(() -> {
           // mDb.eventPersonsDao().update(eventPersonsEntity);

            if (isNetworkAvailable(context)) {
                post_updateEventPersonEntity(eventPersonsEntity);
            }
        });
    }

private void post_updateEventPersonEntity(EventPersonsEntity eventPersonsEntity) {

        Map<String, Object> params = new HashMap<>();
        params.put("EventPersonId", eventPersonsEntity.getEventPersonId());
        params.put("EventId", eventPersonsEntity.getEventId());
        params.put("PersonId", eventPersonsEntity.getPersonId());
        params.put("CashStart", parseDoubleToGerman(eventPersonsEntity.getCashStart()));
        params.put("CashEnd", parseDoubleToGerman(eventPersonsEntity.getCashEnd()));
        params.put("StartingTime", String.valueOf(eventPersonsEntity.getStartingTime()));
        params.put("EndingTime", String.valueOf(eventPersonsEntity.getEndingTime()));
        params.put("isChekcedIn", eventPersonsEntity.getIsCheckedIn());
        params.put("isChekcedOut", eventPersonsEntity.getIsCheckedOut());

        JSONObject objRegData = new JSONObject(params);

        String eventPersonApi = APP_URL.EVENT_PERSONS_API + eventPersonsEntity.getEventPersonId();
        RequestQueueSingleton.getInstance(context).objectRequest(eventPersonApi, Request.Method.PUT, this::onSuccess_updateEventPersonEntity, this::onError, objRegData);

    }

    private void onError(VolleyError error) {

        Log.d(APP_REPOSITORY_TAG, "requestError: " + error);
    }

    private void onSuccess_updateEventPersonEntity(JSONObject jsonObject) {

        // notify ui

    }

共有1个答案

易炳
2023-03-14

您可以像在存储库中为成功响应逻辑所做的那样执行此操作。只需创建新的回调接口:

interface OnEventUpdatedListener{
    void eventUpdated();
}

然后,将您的方法更新为如下所示,将侦听器传递给执行该工作的实际方法:

    public void updateEventPersonEntity(EventPersonsEntity eventPersonsEntity, OnEventUpdatedListener listener) {
    mRepository.updateEventPersonEntity(eventPersonsEntity, listener);
}

在您的:

            if (isNetworkAvailable(context)) {
            post_updateEventPersonEntity(eventPersonsEntity, listener);
        }
    private void onSuccess_updateEventPersonEntity(JSONObject jsonObject) {

    listener.eventUpdated();

}
        updateEventPersonEntity(null, new OnEventUpdatedListener() {
        @Override
        public void EventUpdated() {
            // Do your logic here
        }
    });
 类似资料:
  • 大家好, 我试图找出如何基于Wildfly中运行的模块(war)移动我当前的系统架构。现在所有的基础资源都放在JNDI树中,比如数据源、JMS等等。。。我的项目框架是Spring 4和family,它允许我查找这些资源和其他内容。 我的目标是使用Spring Boot和Spring Cloud Netflix创建一个微服务架构,其中每一个WAR都是一个通过总线服务集成的新的独立应用程序。 但我的疑

  • 我们正在为我们的应用程序尝试多区域体系结构。它由多个客户端使用。 我们使用aws复制数据库(s3和dynamodb),它解决了数据可用性问题。 我们使用SNS在数据发生任何更改时通知客户,但我找不到任何跨区域消息复制的好模式。 以下是我们必须牢记的几点考虑/要求 > 客户端应该能够获得所有的通知,即使它们只在一个区域中。 应用程序应继续工作,即使一个区域下降。如果可能的话,当区域出现时,可以重播消

  • 我有两个收藏,一个是用户,另一个是猫。我想要猫的数据下我的用户集合。但我没有得到。 user.js

  • 如何在Android上响应各种信息通知 原文链接 : How to respond to any* messaging notification on Android 原文作者 : Michał Tajchert 译文出自 : 开发技术前线 www.devtf.cn 译者 : MrLoong 校对者: bboyfeiyu 状态 : 完成 有没有想过使用你的代码去回应未知的发送者是多么酷的事情?作为

  • 我使用显示Firestore中的数据并对数据进行分页。我想在Firestore更改时用新数据刷新适配器。在我想通知数据时不起作用。当前我调用以下命令:

  • 我想将为实体类生成的排序到中的类 我能够通过文件中的以下配置对和进行排序,但我的架构没有按排序顺序排序。 我如何排序我的模式。 谢谢。

  • 问题内容: 我想在Django中使用postgreSQL模式,该怎么做? 问题答案: 我一直在使用: 过去没有意识到仅适用于只读操作。当你尝试添加新记录时,它将失败,因为该序列类似于“ schema.tablename” _column_id_seq。 到目前为止还可以。谢谢。

  • 3错误: 1.intent intent=新的intent(this,programslist2.class); 2.PendingIntent pi=PendingIntent.getActivity(this,0,intent,0);