草庐IT

android - 在 Android studio 3 中找不到 Dokka 插件

我正在尝试在我的Kotlin项目中使用dokka插件,但我收到以下消息:Error:(7,0)Pluginwithid'org.jetbrains.dokka'notfound.我使用的是AndroidStudio3.0版。提前致谢。 最佳答案 第一次在AndroidStudio中使用Dokka和Kotlin#1。设置##1.1build.gradle(Project)中的设置buildscript{ext{version_dokka="0.10.0"version_gradle="3.5.2"version_kotlin="1.3

java - 如何从 Android 中的 Activity 访问默认工具栏?

我正在尝试访问默认的ToolBar从内部和Activity的onCreateOptionsMenu函数更改溢出菜单图标(三点图标)。我想使用这个类提供的setOverflowIcon方法。我已经阅读了官方文档、StackOverflow和其他网站上的帖子,但一切都失败了。例如,我尝试了Toolbartoolbar=(Toolbar)findViewById(R.id.toolbar);但我收到一条错误消息,指出R.id.toolbar没有'存在。 最佳答案 如果您正在使用AppcompatActivity,您应该像这样使用Suppo

android - 在没有生命周期所有者的情况下使用 LiveData

如果在没有生命周期所有者的情况下使用LiveData是个坏主意,我找不到任何信息。如果是,还有什么替代方案?举个简单的例子classItem(){privatelateinitvarproperty:MutableLiveDatainit{property.value=false}fungetProperty():LiveData=propertyfuntoggleProperty(){property.value=when(property.value){false->trueelse->false}}}classItemHolder{privatevalitem=Item()pri

android - 在 RecyclerView 中显示带有视频文件的文件夹

我在回收站View中列出了我所有的媒体文件。假设一个媒体文件在一个文件夹中,那么我也想在我的回收站View中显示该文件夹。这是我列出媒体文件的代码varprojection=arrayOf(MediaStore.Video.Media.DISPLAY_NAME)varcursor=CursorLoader(applicationContext,MediaStore.Video.Media.EXTERNAL_CONTENT_URI,projection,null,null,null).loadInBackground()if(cursor!=null){while(cursor.move

android - 如何在订阅 liveData 后仅针对新更新观察 liveData

使用PagedList,这里没有数据库备份,而是内存中的数据列表(称其为CachedDataList),可以通过fetchMore()填充功能。有了PositionalDataSource、DataSource.Factory和PagedList.BoundaryCallback,它可以工作,但这里有一个问题。流程是PositionalDataSource的loadInitial()开始会被调用,开始从CachedDataList加载数据,并调用loadRange()之后继续按页面大小从CachedDataList加载数据。当CachedDataList中的所有数据都被分页时,将调用B

android - getAccountsByType ("com.google") 无法为 minSdkVersion 21 和 targetSdkVersion 27 列出我的 Google 帐户

来自docs我正在尝试在我的Nexus手机上获取Google帐户:valam:AccountManager=AccountManager.get(this)valmyAccounts:Array=am.getAccountsByType("com.google")即使我肯定有一个帐户并且可以看到引用它的日志,例如I/TrustAgent:[HomeAddressChangeTracker]fetchforaccountmyaddress@gmail.com并且我已经添加了权限并验证了它们被授予,数组总是空的。我有minSdkVersion21和targetSdkVersion27有什么

android - android项目的BaseFragment架构

我正在开始一个新项目,我将在一个由10名开发人员组成的团队中工作。我正在为我们的Android应用程序设置基本结构。当我与一个团队合作时,我希望每个人都遵循相同的结构,即为每个fragment创建ViewModel并使用数据绑定(bind)。如果开发人员不为他们的Fragment创建ViewModel,我怎样才能让它变得严格,以便开发人员得到一个错误?所以我创建了下面的BaseFragment:abstractclassBaseFragment:Fragment(){openlateinitvarbinding:DBprivatefuninit(inflater:LayoutInfla

android - Kotlin Dagger2 找不到符号 ApplicationModule_ProvideApplicationFactory

我正在尝试将Dagger2与Kotlin一起使用,但今天尝试编译时遇到此错误:Error:Executionfailedfortask':app:compileDebugJavaWithJavac'.Error:(5,43)error:cannotfindsymbolclassApplicationModule_ProvideApplicationFactory(应用程序)Build.gradleapplyplugin:'com.android.application'applyplugin:'kotlin-android'applyplugin:'kotlin-android-ext

android - Kotlin object/singleton 的方法是否同步?

将@Synchronized注释添加到对象的方法以使它们成为原子方法是否有意义,或者不需要它?例如:objectSingleton{varfield1:Int=0privatesetvarfield2:Int=0privateset@SynchronizedfunupdateFields(f1:Int,f2:Int){field1=f1field2=f2}}我想确保当我从其他对象读取它们时所有字段都被更新。我应该保留@Synchronized注释吗? 最佳答案 如果你想实现@Synchronized您需要明确添加语义-如您的示例所示

java - Kotlin androidTest : Tests ran to completion. 空测试套件

我正在尝试将我的测试从java转换为kotlin。简单的单元测试翻译成功,像这样:classBindingUtilsTest{@Test@Throws(Exception::class)funtestConvertBooleanToVisibility_visible(){assertEquals(BindingUtils.convertBooleanToVisibility(true),View.VISIBLE)}}但是当我尝试运行androidTest时它失败并显示消息:“未找到测试”和TestrunningstartedTestsrantocompletion.Emptytest