问题标签 [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 回答
1819 浏览

android - 如何从 Conductor 的路由器后端堆栈中删除控制器?

我正在使用Conductor和 Mosby 在 android 应用程序中实现 MVP-MVC 架构。
我需要做的是从路由器的后端移除一个控制器,onBackPressed这样控制器就不再回到前面。

0 投票
1 回答
611 浏览

android - Android 应用程序的 MVP 模式问题

几年来我一直在开发安卓应用程序。最近,我在我的应用程序中使用了 MVP 架构,并且在阅读了很多内容并使用了这个Android10 github repo 之后。

但是对于我正在寻找的这个 MVP 架构,我几乎没有什么疑问。请帮助我更好地理解这些。

1)所以我有三个模块应用程序,域,数据。哪个模块演示者会去。在某些应用程序中,它们在域中具有它,但我看到其他一些库在演示文稿或应用程序模块中具有它,例如https://github.com/android10/Android-CleanArchitecture

2 ) 演示者可以拥有 android 相关的东西,如 Intents、Contexts、SharedPrefs 等吗?我认为这不应该发生。

3)数据模块可以与应用程序模块对话,反之亦然或者应用程序模块应该与域模块对话,后者在数据模块上执行事物

4)我怎样才能像Facebook一样使用MVP架构进行社交登录......有什么想法或链接可以解释吗?我已经通过以下方式做到了:

活动:onFBButtonClick()--> presenter.onButtonClick()-->FacebookLoginManager.registerCallback

在此之后,我直接收到关于我的活动的回调onActivityResult(int requestcode, int resultcode, Intent intent)。现在根据fb sdk教程我必须打电话FbCallbackManager.onActivityResult(with all the params)。但是我不能在演示者中传递这些信息,因为演示者不应该知道意图(特定于平台)的事情。我现在怎么打电话FbcallbackManager.onActivity()

0 投票
1 回答
707 浏览

android - Mosby MVP - how to recreate Fragment's state after onDestroyView()?

I'm using Mosby Model-View-Presenter library in an Android app. In one particular view I'm using Bottom Navigation implemented with Design Support Library v25.1.0. I'm switching between 3 fragments in an Activity. For handling rotation configuration change I'm using Mosby's custom RestorableViewState.

The problem I have is that Mosby is storing View's state in Activity's onSaveInstanceState(Bundle bundle) which is NOT called when I swap fragments in the same activity, only Fragment's onDestroyView() is being called. Currently I'm storing the state separately in the Fragment itself (since the fragment is not destroyed during switching fragments, just the Fragment's view) but I have redundant code which kinda defeats the purpose of using MVP architecture.

Is there any more elegant solution to store Fragment's state during both orientation change AND swapping fragments?

0 投票
3 回答
5072 浏览

android - Android 服务在 MVP 模式中应该扮演什么角色?

我正在开发一个执行人类活动识别的 Android 应用程序。

它基本上是这样工作的——服务不断读取加速器数据并将识别的活动(即步行、跑步)存储在数据库中。用户可以在活动中看到所有已识别的ListView活动(访问数据库)。数据库中的每个用户表都有一个 pa_goal(身体活动目标)字段,服务从数据库中读取该字段并进行一些检查。

当然,用户可以从活动中更改此目标。因为我将实现 MVP 架构模式。

我不确定将服务放在哪里?肯定不是View。有什么建议吗?

0 投票
1 回答
78 浏览

java - 尝试保存文件时相机崩溃I

我被困住了。这是我的方法,从相机获取图片并保存它们:

我正在创建临时文件,然后获取 uri,将其设置为意图。然后 startActivity 获取结果。当我拍照并提交时,应用程序崩溃。Logcat 什么也没说。

这是存储的文件和uri:

这是 Manifest.xml 中的权限:

为 API 19+ 编译

那就是 Log.i 说:

0 投票
2 回答
1627 浏览

android - Android MVP:登录凭据验证

最近几天我开始学习 MVP,发现这个有趣的教程。我一步一步地按照代码在我的应用程序中实现登录功能。但是,我仍然很难理解输入验证应该在哪里!LoginInteractorImpl在登录方法内的类内的教程中(一种方法中有两个功能!)。我的问题是,为什么我必须访问 Interactor 类来验证凭据?为什么不验证Presenter类中的输入,如果输入正确,我将其传递给交互器?

0 投票
1 回答
978 浏览

android - Dagger 没有为 androidTest 生成组件类

我正在使用 AndroidJUnitRunner 为 androidTest 编写测试用例。

我在 build.gradle 中添加了以下匕首代码片段

//androidTest文件夹中的MockDemoApplication.java

但是当我尝试运行测试用例时,匕首没有为组件类生成类并低于错误

0 投票
4 回答
2289 浏览

android - 恢复 ViewPager 片段的演示者 (MVP)

我正在尝试重构现有应用程序以使用 MVP 架构。其中一项活动ViewPager包含三个片段。每个片段都与一个演示者链接。准确地说 - 每个演示者在创建时都会被分配一个View可以使用的对象,即一个Fragment. 现在,我在ViewPager's 适配器中创建这些演示者 - 特别是在getItem(int position)方法中。

我面临的问题是,如果进程被杀死然后重新启动,ViewPager它有自己的生命周期,因此getItem不会再次被调用 - 片段是自动重新创建的,没有演示者。

这个问题有已知的解决方案吗?

0 投票
1 回答
1843 浏览

android - Dagger 2 How to create a Module for Base Activity Components and a separate Module for all MVP components

Hello I am new to Dagger2. Goal. Take my Networking DI and MVP DI. MVP as in the presenter for an an activity that extends base activity. I want to combine all this into one super module and place this into my base activity. Over time add more presenters.

I do not want 30+ inject statements in my baseActivity. I am following this example but it is too simple compared to what I am trying to do.

I think the issue is with injecting the API at the base activity. For some reason Dagger is looking for Api in my MVP class.. So that would be a dependency graph issue?

Having spent more time on this.. The issue stems from Mvp's interface of baseActivity or any sub activity that extends baseActivity. That means when it goes to inject, it sees the @inject Api call, and cannot find it. It will work if I add Api to this module, but thats upside down of what I want. I want Component / Module for Application level items. I then want a component / module that has all my different MVP component in one module.. It's like Dagger starts looking for dependencies in the leaf of a tree and getting upset when it doesn't see whats in the root. I need it to go the other way. Be satisfied that I injected the dependency in the Root activity.

Base Activity...

DaggerInjector

Api

Mvp

0 投票
1 回答
288 浏览

android - 片段 mvp 中的自定义布局作为 mvp

我一直在 android 中练习 MVP 模式。
我的问题与如何设计具有自定义布局的片段的情况有关。(请参阅下面的布局)片段中的自定义
布局

自定义布局中有 2 个卡片视图:
- 如果您单击好友卡片视图,将显示一个对话框片段,其中显示一个自定义适配器,其数据来自获取本地数据库
- 如果您单击其他卡片视图,将显示一个对话框片段,显示自定义适配器其数据来自服务器。
您可以检查此适配器中的人员,如果单击确定,则已检查人员的图像将显示在卡片视图中

我已将片段作为 MVP 构造的一部分作为视图,但我被卡住了。
将自定义布局也创建为 MVP 构造是否是个好主意?或者不仅仅是布局,还有卡片视图?
如果是,那么当我单击“保存”按钮时,这些“嵌套”MVP 如何将数据(朋友和其他人)发送回主机片段/演示者?

还是我让这个简单的片段布局架构过于复杂?
任何建议表示赞赏

该片段实现了以下视图:

和 CustomLayout: customLayout 要点