问题标签 [android-mvp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
80 浏览

mosby - 方向改变后的莫斯比和恢复状态

在我们的应用程序(使用 Mosby)中,我们有一个 SearchActivity,它使用 Retrofit 来获取结果。目前的基本流程是 SearchActivity 有一个List<Results>(它有一个@State注释),我添加了检索到的结果。从 SearchActivity 我调用到presenter.doSearch(searchquery) 在我们的 RetrofitonSuccess回调中,然后调用getView().populateResults(results). 然后,这会将检索到的结果添加到活动中的列表中,并添加到回收器视图中。

这不是正确的方法,因为我们现在得到了 TransactionTooLargeExcpetion's。

那么,使用 Mosby 保存这些获取的结果并在方向更改时恢复它们的正确方法是什么。

0 投票
2 回答
802 浏览

android - Firebase 没有从 onDataChange 方法获取数据

我知道 Firebase 异步获取数据,我试图在数据加载到我的 recyclerView 适配器之前设置数据,以便它显示在 recyclerview 中。但是当我启动应用程序时,它只得到我最初设置的“EMPTY”字符串,而且似乎 firebase 甚至没有去 onDataChange 方法

CoursesFragment.kt

CoursePresenter.kt

课程.kt

编辑:我在 CoursePresenter 中试过这个

0 投票
0 回答
188 浏览

android - 为什么google sample android-architecture todo-mvp 项目不使用robolectric 做单元测试

我一遍又一遍地阅读了 googlesamples/android-architecture todo-mvp 代码。我在项目中学到了两件事,mvp 和单元测试。但是,我想知道开发人员不使用 robolectric 工具来测试模型层。robolectric 工具比 android 仪器测试更快、更容易使用。编写模拟和刺激口味看起来有点无聊。一定有什么原因。它是什么? github

0 投票
1 回答
198 浏览

android - android MVP中模型应该如何反馈给视图?

我正在使用 MVP 在我的 android 应用程序中解耦我的视图和模型。我需要知道模型应该如何将业务逻辑的结果反馈给视图。

例如,如果按下按钮登录,活动将是这样的,使用黄油刀@OnClick注解:

然后演示者将验证并向存储库发出请求:

然后存储库将执行业务逻辑:

评论说// handle unsuccessful something,模型如何将业务逻辑的结果反馈给视图,以便视图可以处理这些结果?

谢谢你。

0 投票
1 回答
5268 浏览

android - Dagger 2 For Android“不能在没有@Provides-annotated 方法的情况下提供”

我正在尝试使用最新版本的 Dagger 2 V2.11 for Android 这是我的代码
AppComponent::

AppModule

ActivityBuildersModule

ActivityModule

FragmentBuildersModule

FragmentModule

AddApplicantPresenter

AddApplicantMvpPresenter

ActivityScope

FragmentScope

Error Log

0 投票
1 回答
1449 浏览

android - 如何使用Android的MVP结构在Fragment中初始化Presenter

您好,我尝试将 Presenter 对象初始化到我的片段中,但它抛出 ClassCastException

HomeActivity.java(主类)

TournamentPresenter.java(演示者)

最后这是我的片段,我收到强制转换异常错误

TournamentListFragment.java (查看)

请查看我的代码并帮助我解决问题。我的问题很简单,我无法在 Fragment 类中初始化 Presenter。

0 投票
4 回答
3012 浏览

android - 无法访问 Nullable Dagger2 Android

我正在编写一个使用 Dagger2 进行依赖注入的应用程序。我是匕首新手。我对它的工作原理感到困惑,我无法弄清楚如何使用这个库。我尝试借助博客中的示例编写以下模块和组件。我已经提到了该模块的目的。如果我错了,请纠正我。

  1. 应用模块和组件:它应该在整个应用程序中生成一个单例实例,我想使用这个实例来访问一些 android 资源

    /li>
  2. AppComponent 的实例化

    上面的代码工作正常。我在下面的代码中遇到问题

  3. 位置模块和组件:如果我没有以下模块的构造函数,可以吗?

    /li>

我收到以下错误

错误:无法访问 javax.annotation.Nullable 的 Nullable 类文件未找到

在下面的课程中使用@Inject 之后。如果我删除 @Inject 错误就会消失。

为什么我会收到这个错误?任何帮助,将不胜感激。提前致谢。

0 投票
1 回答
707 浏览

android - 无法理解 dagger 依赖注入概念 - android 上的 Dagger 2

我正在尝试了解 dagger2 并在我的应用程序中实现。我已经阅读了很多关于它的好处。除非并且直到我完全理解它,否则我无法在我的应用程序中获得它的好处。

我已经了解@Module 和@Inject。让我感到困惑的是@Component。我有几个与此相关的问题。

  1. Module 提供对象实例,Inject 使用它。为什么我们需要介于两者之间的组件?真的有必要弥补差距吗?我们可以有没有任何方法的空接口组件吗?

  2. 模块类真的需要构造函数吗?如果模块类中没有构造函数,我们可以使用空构造函数初始化模块类吗?

  3. 为什么我们不能直接实例化模块类并构建依赖图,而不是创建组件然后初始化它?

  4. 到目前为止,我在组件接口中只看到了两种方法

    一个。无效注入(活动/服务/片段);- 为什么我们需要为此方法提供活动或服务或片段的实例?为什么我们不能有这样的东西-

    无效注入();- 组件还会生成依赖图吗?

    我们可以从其他类而不是活动或服务或片段中注入这样的东西吗?

    无效注入(DataManager 数据管理器);

    如果 DataManager 是一个单例实例怎么办?

    湾。改造 getRetrofit(); 这种方法和上面的方法有什么区别?为什么这不接受任何输入参数?

  5. 我读到@Singleton 只是匕首中的一个范围。我们如何才能真正创建一个在应用程序的生命周期中存在的单例对象?

  6. 假设有一个我想使用 dagger 构建的 DataManager 实例。它只有一个依赖项。我为此编写了一个模块类和一个组件接口。如果我想在 MainActivity 中使用它,我将它用作

    @Inject 数据管理器数据管理器;

    ...

    @覆盖

    protected void onCreate(Bundle savedInstanceState) {

    DataManagerComponent.Builder().DataManagerModule(new DataManagerModule()).build();

    }

    我想在许多其他活动中使用这个数据管理器,我不希望它是单例的。我想将它保留在我使用它的当前活动范围内。所以我会用

    @Inject 数据管理器数据管理器;

    得到那个实例。我应该写吗

    在我使用@Inject DataManager dataManager 的每个活动 oncreate() 中?如果我必须写那个,它不会创建比简单使用更多的样板代码吗

    数据管理器数据管理器 = 新数据管理器();

  7. 假设有 4 个对象,它们相互依赖,例如 D 依赖于 C,C 依赖于 B 等。

    D -> C -> B -> A

    假设我已经编写了模块类并为所有 4 个提供了方法。如果我尝试在任何 ActivityA 中注入 D

    @Inject D d;

    C、B、A 会自动实例化吗?

    假设在 ActivityB 中我只需要注入 B。如果我像注入 B

    @注入 B b;

    匕首会再次创建B和A吗?还是会使用已经创建的?

如果有人花时间回答我所有的问题,我将不胜感激。我不期待详细的答案。如果它澄清了这个概念,那很好。期待回复。提前致谢。

0 投票
1 回答
329 浏览

android - 如果没有 @Provides- 或 @Produces-annotated 方法,则无法提供 Presenter | 安卓 | 匕首 2

我正在使用 Viper MVP 代码架构 -

当我编译代码时,我收到了这个错误-

这是我的 Gradle 文件-

这是我的根级 Gradle -

编辑

  • LoginMvpPresenter 类

    包 com.tv.goin.activities.login;

    /li>
0 投票
2 回答
2207 浏览

android - 如何使用 Dagger2 将 Presenter 注入 Fragment?

我有我想注入片段的 RegisterPresenterImpl 。当我调用该演示者的方法 register() 时,我的应用程序崩溃。它说我的演示者为空。

我该如何解决这个问题?

组件接口:

这是模块类:

这是一个名为 RegisterPresenterImpl 的类