Tag: mvp

kotlin todo-mvp使用framents

我正在使用谷歌示例中的todo-mvp-sample,想知道为什么开发者实现了统计活动(为什么使用活动而不是替换片段) 她有一个代码片段:来自TasksActivity private fun setupDrawerContent(navigationView: NavigationView) { navigationView.setNavigationItemSelectedListener { menuItem -> if (menuItem.itemId == R.id.statistics_navigation_menu_item) { val intent = Intent(this@TasksActivity, StatisticsActivity::class.java) startActivity(intent) } // Close the navigation drawer when an item is selected. menuItem.isChecked = true drawerLayout.closeDrawers() true } } 并在StatisticsActivty重复代码: private fun setupDrawerContent(navigationView: NavigationView) { navigationView.setNavigationItemSelectedListener { menuItem -> if (menuItem.itemId == R.id.list_navigation_menu_item) { […]

TornadoFX – 创建一个MVP设计

你好我是使用TornadoFX的新手,我想知道MVP结构的最佳设计是使用TornadoFX吗? 在MVP看来: – >会将所有事件委托给演示者中的某个功能,例如按钮点击 – >不与模型交互 以下是一些粗糙的原型想法: abstract class AbstractPresenter<View : tornadofx.View> : Controller() { var view: View by Delegates.notNull() fun attachView(view: View) { this.view = view; } } 我创建一个自己附加到AbstractView的演示者: abstract class AbstractView<out Presenter : AbstractPresenter<*>> : View() { abstract val presenter: Presenter } 现在在一个例子中使用它: class SampleTestView: AbstractView<SampleTestPresenter>() { override val presenter: SampleTestPresenter by inject() […]

匕首2,不能在我的活动中注入演示者

我是Dagger2的新手。 我有一个注射主持人在我的活动中的问题我尝试解决我的问题后阅读本文https://android.jlelse.eu/inject-interfaces-without-providing-in-dagger-2-618cce9b1e29,但它不是帮助我。 我希望有人帮助我,我花了整天的时间来解决它… 这里是我的模块: @Module class AppModule(private val appContext: Context) { @Singleton @Provides internal fun provideContext(): Context { return appContext } @Singleton @Provides internal fun providePreferences(): SharedPreferences { return appContext.getSharedPreferences( appContext.resources.getString(R.string.shared_preferences_name), Context.MODE_PRIVATE) } } @Module abstract class ActivityModule { @Binds abstract fun provideMakeCheckPresenter (p : MakeCheckPresenter<MakeCheckMvpView>) : MakeCheckMvpPresenter<MakeCheckMvpView> } 这里是我的组件: @Component(modules = { AppModule.class, ActivityModule.class}) […]

我怎样才能注入对象到android kotlin MVP mosby应用程序与匕首的主持人

我试图让我的应用程序中的匕首工作。 创建模块组件和MyApp后,我可以使用匕首注入数据库服务,但我有麻烦与演示者做同样的事情。 码: class MyApp : Application() { var daoComponent: DaoComponent? = null private set override fun onCreate() { super.onCreate() daoComponent = DaggerDaoComponent.builder() .appModule(AppModule(this)) // This also corresponds to the name of your module: %component_name%Module .daoModule(DaoModule()) .build() } } 模 @Module class DaoModule { @Provides fun providesEstateService(): EstateService = EstateServiceImpl() } 零件 @Singleton @Component(modules = […]

为什么在编译时使用kotlin在Dagger2中使用Scopes和Singleton注释会导致错误?

该应用程序工作正常,除非我在一些“提供”方法之前添加@MainScope或@Singleton注释,然后我得到gradle生成错误 错误:执行任务':app:kaptDebugKotlin'失败。 内部编译器错误。 查看日志了解更多详情 日志包含这个: 生成时间戳:本地:1508577084874,设备:1508577084874 2017-10-21 11:18:34,358 [216576]信息 – ools.idea.fd.InstantRunBuilder – BuildCause:FIRST_INSTALLATION_TO_DEVICE,BuildMode:FULL 2017-10-21 11:18:34,359 [216577]信息 – ild.invoker.GradleBuildInvoker – 将执行Gradle任务:[:app:assembleDebug] 2017-10-21 11:18:34,377 [216595]信息 – s.plugins.gradle.GradleManager – 指示gradle使用java从C:/ Program Files / Java / jdk1.8.0_144 2017-10-21 11:18:34,408 [216626] INFO – util.EmbeddedDistributionPaths – 在'C:\ Program Files \ prebuilts \ tools \ common \ offline-m2'2017-10-21 11:18:34,408 [216626] INFO – […]

Dagger2 + MVP上Kotlin

我正在学习Dagger2 + MVP并在Kotlin上做。 而且我在理解Dagger2或者MVP或者那里有一个问题。 构建一个应用程序和想法应该如何工作是非常简单的。 该应用程序由左侧导航MenuActivity和几个Fragments (比方说3),应该在activity_menu.xml的FrameLayout中进行更改。 我已经读了几篇文章,花了几天时间学习Dagger2。 本文我作为教程来构建我的示例: https : //proandroiddev.com/dagger-2-part-ii-custom-scopes-component-dependencies-subcomponents-697c1fa1cfc 在我的想法中,Dagger架构应该由三个@Component组成:(1)AppComponent,(2)MenuActivityComponent和(3)AccountFragmentComponent。 从我的理解和文章中的建筑图片我的架构可以是这样的:(3)取决于 – >(2)取决于 – >(1) 每个@Component具有@Module :(1)AppModule,(2)MenuActivityModule和(3)AccountFragmentModule。 (2)MenuActivityModule和(3)AccountFragmentModule应该@Provide Presenter从MVP意识形态的Presenter是@Inject在MenuActivity和其他Fragment ,如AccountFragment 。 的AppModule @Module class AppModule(val app : App){ @Provides @Singleton fun provideApp() = app } AppComponent @Singleton @Component(modules = arrayOf(AppModule::class)) interface AppComponent{ fun inject(app : App) fun plus(menuActivityModule: MenuActivityModule): MenuActivityComponent } MenuActivityModule […]

Kotlin通用铸造到一个更具体的子类

所以我试图搞砸Kotlin,我有一个老的java MVP框架,在java中我们不得不将一个通用的接口转换为一个更具体的接口,比如public <P extends BaseContract.Presenter> P getPresenter() 我们将在一个子类中作为 @Override public AdvertisementContract.Presenter getPresenter() { return (AdvertisementContract.Presenter)super.getPresenter(); } 在Kotlin我要这样做: override fun getPresenter(): AdvertisementContract.Presenter { return super.getPresenter() as AdvertisementContract.Presenter } 有没有什么我可以做,而不需要在基础界面中修改泛型?

Kotlin的泛型与扩展

我试图将Java项目移植到kotlin,并有一些问题。 我在Java中使用泛型有一些MVP结构 interface View<P extends Presenter> {} interface Presenter<V extends View> {} interface BaseView<P extends Presenter> extends View<P> {} class BaseActivity<P extends Presenter> extends AppCompatActivity implements BaseView<P> {} 最初两个类,我从IDE错误 interface Presenter<V : View<*>> {} interface View<P : Presenter<*>> {} 我的错误是 *this type parameter violates the finite bound restriction* Java代码没有任何问题

Kotlin + MVP – 意外覆盖

我一起使用Kotlin和MVP,偶然发现有点烦恼。 我得到一个“意外覆盖”的错误(你可以从下面看出来)。 除了在MainView界面中更改成员变量名称或getX()之外,是否还有解决此问题的方法。 从我所研究的,没有办法阻止kotlin为'x'生成吸气剂。 class MainActivity : Activity(), MainView { val x: String // Accidental override override fun getX(): String { return x } } interface MainView { fun getX(): String }

Kotlin通用边界

我正试图将我的MVP解决方案从JAVA移植到Kotlin,而我在泛型方面遇到了一个很大的问题。 这是我的JAVA类的样子: public abstract class BaseActivity<P extends BasePresenter> extends AppCompatActivity implements BaseView public abstract class BasePresenter<V extends BaseView> public interface BaseView 并移植到Kotlin: abstract class BaseActivity<P : BasePresenter<BaseView>> : AppCompatActivity(), BaseView abstract class BasePresenter<V : BaseView> interface BaseView 而当我试图使用 class MainActivity() : MainView, BaseActivity<MainPresenter>() 我得到“类型参数不在其范围内,预期: BasePresenter , 找到MainPresenter ”