问题标签 [mosby]
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.
java - Mosby 框架 - getView 导致 ClassCastException
我只是创建一个简单/空白片段,它应该使用Mosby
框架。每次我使用该getView()
方法时,我都会收到错误消息:
java.lang.ClassCastException:de.xxx.projectZ.packA.AFragment 无法转换为 de.xxx.projectZ.packA.AView
我的主持人导致错误
我的片段标题
有人知道为什么会这样吗?
android - MVP-Mosby-Api10:NoSuchMethodError android.support.v4.app.FragmentActivity.isChangingConfigurations
我在 crashlytics 面板上收到此错误:
我覆盖了库的清单以使用它,api level 10
并且我已经在 android 2.3.3 上对其进行了测试,它工作正常!但现在我看到这个崩溃了crashlytics
。嗨,我可以为我的版本解决这个问题吗?崩溃与 api 10 有关吗?因为该方法是针对support v4
图书馆的,所以我不明白为什么会这样。
android - Presenter/View/ViewState 关系
例如,我有EditProjectFragment
其中包含几个元素:
TextView
(项目名称)ColorPicker
(项目颜色)Spinner
(项目类型)
让我们来看看:
- 项目名称会由 TextView 自己恢复
- 谁必须存储项目的颜色?
- 谁必须存储微调器的值?
似乎是ViewState
他的责任。例如,当用户选择颜色时,View
调用presenter.onProjectColorPicked(color)
. 然后,Presenter
将调用view.setProjectColor(color)
. 还是View
应该ViewState
直接更新,如果不需要就不用调用Presenter
?
另一个例子。用户在 EditNoteFragment 中添加照片。用户选择 photo( presenter.pickPhoto()
) ->presenter.addPhoto(photo)
调用并通知View
将照片添加到ViewState
& 显示它。应该自己View
更新Note
对象吗?是否应该由 Presenter 完成?在第一种情况下,这意味着ViewState
将提供getNote()/setNote(note)
View 将使用的类似方法。View.setNote(note)
我应该通过在方法中更新它来复制 Note-reference吗?第二种情况意味着我可能应该将Note
对象存储在Presenter
其中并且只更新View
而不传递Note
它。但它看起来像一个错误的方式。
换句话说:View
没有Presenter
' 的帮助必须做什么(向Note
对象添加照片?)以及用它做什么(按钮点击等)?
android - 如何告诉 Android Studio 已完成空值检查?
如何在 Android Studio 中配置 Assert/Check 方法?
我使用 Mosby MVP 框架,在 Presenter 中我经常使用这种模式:
getView()
标记为@Nullable
,所以 Android Studio 向我显示警告method invocation 'someViewMethod' could produce NullPointerException
。它不明白我以前检查过它。
我找到了关于配置断言/检查方法的绝妙答案:https ://stackoverflow.com/a/19319326/1263771
但是在新鲜的Android Studio中不能这样做,因为它有不同的设置界面。那么,如何在最后一个 Studio 中做到这一点呢?
android - Mosby 和 EventBus
我正在尝试使用 Mosby 和 EventBus 开发应用程序。我想要的第一个事件是在用户登录之后,创建一个粘性事件,以便每个屏幕都可以随时访问登录信息。
根据 Mosby 邮件示例,我有一个这样的 BasePresenter:
当用户登录时,我使用此代码:
我的想法是,对于每个屏幕,一旦加载它就可以通过 EventBus 订阅检索 UserInfo。
问题是——这个事件也来了,儿子。根据 mosby 自己的 BaseFragment 类,我这样做:
这意味着注入在视图创建之前到达,所以每当我尝试响应接收到的 LoginEvent 时,需要更新的 UI 元素不再存在。
我怎样才能做到这一点?这甚至是正确的方法吗?
android - 加载更多关于改造和 rxJava
我正在尝试从博客加载帖子。我使用 mosby + 改造 + rxjava。
和api
第一次查询网站是好的。https://site/posts?last_id=0
但是第二次运行函数 getList 不起作用。我总是得到与 last_id = 0 相同的 get 查询,但在控制台写入行
如果我写
然后我得到真正的查询字符串https://site/posts?last_id=1000
更新 我重写代码存储库。
这是工作
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?
android - Mosby MVI:意图绑定行为不一致
我正在将新的Mosby MVI库用于新的演示应用程序。在演示者中定义意图时,在附加视图时触发/发出意图时不一致。
例如:让我们在一个活动中定义非常简单的意图
演示者将意图绑定如下:
这个意图工作得很好。当导航到不同的活动(详细视图)并返回时,bindIntents()
称为重新创建意图。intentLoadData()
不会发出新项目,MviBasePresenter 将使用内部 BehaviorSubject 提供以前的 ViewState。
我的问题是:当我稍微调整意图(用于重新加载数据)时。当重新附加视图时,意图开始发出一个项目。
因此,让我们将意图更改为:
导航到新活动并返回时不。重新附加视图时,意图会发出一个新项目。在我的情况下,这会导致对后端的新 APU 调用以重新加载数据,而不是重用最后一个 ViewState。即使reloadData()
从未调用过,也会发生这种情况。
这种行为感觉非常不一致。在重新附加视图期间触发意图时,我如何才能感觉更有控制力?
更新: 对我来说更有趣的是,如何避免在重新附加时自动发出意图,而无需完成 Observable。随着 PublishSubject 的引入,活动将重新加载整个数据,即使只是在旋转时也是如此。
android - Mosby MVI - 如何重试意图?
我正在将 Mosby MVI 库用于演示应用程序,该应用程序在我的交互器中使用 Retrofit2 对 Restful API 执行简单的 CRUD 操作。我构建的 ViewStates 与示例应用程序中的非常相似,当 Retrofit 响应错误时包含 Throwable。在这种情况下,该render()
函数会显示一个带有重试按钮的错误屏幕。单击重试按钮时,我想重新发出失败的 Intent 的最后一项。
我想retryWhen()
在 Intent 中添加类似的东西,当然这只是由onError()
.
有没有添加这种行为的简单方法?
android - MvpViewStateFragment 未在屏幕方向上恢复 ViewState
我正在使用 Mosby MVP 库开发一个 Android 应用程序。在一个特定的 Fragment 中,ViewState 已实现但未使用(状态未更改或其他任何内容)。部分视图逻辑由 widgetManager 实现。我正确地更改了状态,但行为很奇怪:在屏幕方向上,createViewState()
并onNewViewStateInstance()
在 viewState 之后调用apply()
:取消恢复视图状态和相关行为。
你知道为什么会这样吗?
我已经将 ViewState 实现为 aRestorableParcelableViewState
但同样的事情发生了。
调试后:循环:onSaveInstanceState(fragment)、saveInstanceState(viewstate)、onViewCreated(f)、apply(vs)、[正确的行为但是然后]、createViewState(f)、onCreate(f)、createPresenter(f)、onViewCreated (f) 并且所有内容都再次为 null 并重新启动,就好像片段刚刚使用 null savedInstanceState 创建一样。
这是片段的核心:
视图状态:
主持人: