Tag: android

将对象列表传递给片段

class CholesterolPagingFragment: Fragment() { companion object { fun newInstance(): CholesterolPagingFragment { val args = Bundle() val fragment = CholesterolPagingFragment() fragment.arguments = args return fragment } } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view = inflater.inflate(R.layout.fragment_paging_cholesterol, container, false) return view } } 我已经写了上面的代码在Kotlin初始化一个片段。 虽然我不能找出一种方法来传递对象列表(例如: List )到这个片段。 我已经尝试与Bundle()但找不到一个正确的方法。

java.lang.IllegalStateException:Dex存档:仅为.CLASS文件设置.DEX扩展名

我在gitlab ci上构建这个项目 ./gradlew assembleDebug –stacktrace 有时会抛出一个错误: FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ‘:app:transformClassesWithDexBuilderForDebug’. > com.android.build.api.transform.TransformException: java.lang.IllegalStateException: Dex archives: setting .DEX extension only for .CLASS files 在我的本地电脑,它工作正常。 kotlin版本是1.2 multidex已启用 这个错误的原因是什么?

Base64支持不同的API级别

在我的Android应用程序 的build.gradle android { compileSdkVersion 27 defaultConfig { minSdkVersion 16 targetSdkVersion 27 … } …. } Kotlin代码 val data = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { Base64.getDecoder().decode(str) } else { Base64.decode(str, Base64.DEFAULT) // Unresolved reference: decode } 显然,在API 24之前使用Base64变体时,出现了编译错误。 但是我怎样才能像以前一样支持所有的API级别并使用Base64?

在kotlinunit testing中获得lambda捕获器的调用计数

我有这个小小的和平代码,我想在我的主持人(MVP) fun load(id: String) { storage.load(id, { result -> this.result = result view?.notifyLoaded(result) }, { string -> … }) } 。 我在我的unit testing用例中storage.load(String, (Result)->Unit, (String)->Unit) 。 `when`(storage.load(eq(testResult.id), any Unit>(), any Unit>())).thenAnswer({ invocation -> (invocation.getArgument(1) as? (Result) -> Unit)?.invoke(testResult) }) 现在我的测试案例看起来像这样 @Test fun testLoading() { /* Given */ … /* When */ presenterUnderTest.load(testResult.id) /* Then */ […]

在beforeEachTest和afterEachTest之前不要运行方法kotlin spek android

我试图在Android上使用Spek框架编写一个测试。 但是我很困惑。 根据代码,演示者必须在beforeEachTest方法中初始化。 并且必须在afterEachTest之后的方法中清除条件。 但是当我运行这个测试时,它在mPresenter !!。setPass(PASSWORD,PASSWORD)行中失败了。 但是如果你取消它前面的两条线,那么测试就会成功。 可能是什么问题呢? 在此先感谢您的答案 object ResetPasswordPresenterTestKotlin : Spek({ include(RxSchedulersOverrideSpek) val PASSWORD = “123456aZ”; var mView = mock{} var mMockDataManager = mock{} var mToken = mock{} var mPresenter : ResetPasswordPresenter ?= null beforeEachTest { print(“beforeEachTest”) mPresenter = ResetPasswordPresenter(mMockDataManager) mPresenter!!.attachView(mView) } afterEachTest { print(“afterEachTest”) mPresenter!!.detachView() reset(mView) } describe(“Reset password is succesful”) { […]

创建或解析java和kotlin clas到gradle任务

我有一些写在Java上的配置类。 这个配置包含一些颜色字段。 我想在编译时读取这些字段,并根据这些字段生成style.xml。 这个配置文件位于src / main / java。 如何在执行自定义gradle任务期间创建实例这个类(config)或解析.java文件?

Android – 不要生成值-v26

我使用SDK 25在Kotlin中构建一个应用程序。 现在,Android Studio更新后,我得到这个错误: …/audiobook/build/intermediates/res/merged/opensource/debug/values-v26/values-v26.xml No resource found that matches the given name: attr ‘android:keyboardNavigationCluster’. No resource found that matches the given name: attr ‘android:keyboardNavigationCluster’. Execution failed for task ‘:audiobook:processOpensourceDebugResources’. > com.android.ide.common.process.ProcessException: Failed to execute aapt 我知道我应该更新我的Gradle依赖到SDK 26,但是如果我这样做,那么我需要重写我所有的Kotlin代码,因为SDK 25和SDK 26之间有很多变化。 有什么办法, 当我只在我的Gradle中的SDK 25上时,如何不生成values-v26文件 ? 谢谢。 这里是错误的截图

在xml定义的活动中找不到onClick方法

我试图将一个函数链接到AndroidStudio中的按钮的onClick属性,但出于某种原因,系统无法识别我编码的方法。 有趣的是,当我用Java编写代码时,它工作正常。 在Kotlin它不是。 我更新了我的Kotlin并检查了它的配置,但是我找不到问题。 我的朋友尝试了我在Linux电脑上做的同样的事情,并且为他工作。 我有一个Mac OS,我不知道是否有一些额外的配置照顾。 谁能帮我? 这是我的简单活动: import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.view.View class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } fun sendMessage(view: View) { } } 这是xml: 在build.gradle我有: apply plugin: ‘com.android.application’ apply plugin: ‘kotlin-android’ apply plugin: ‘kotlin-android-extensions’ 错误信息: Corresponding method handler ‘public void sendMessage(android.view.View)’ not found The […]

使用Kotlin将图像从ImageView传递给Android中的另一个Activity

如何将使用Kotlin在ImageView选择的ImageView传递给Android中的另一个Activity? 这是使用内部存储选择ImageView内部的ImageView方法,我需要将图像传递给另一个活动 fun Loadimage() { var intent = Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI) startActivityForResult(intent,ImageCode) } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode==ImageCode && data!=null && resultCode== Activity.RESULT_OK) { val selectedImage = data.data val filepath = arrayOf(MediaStore.Images.Media.DATA) val cursor = contentResolver.query(selectedImage,filepath,null,null,null) cursor.moveToFirst() val Index = cursor.getColumnIndex(filepath[0]) val Picture = cursor.getString(Index) cursor.close() imageView.setImageBitmap(BitmapFactory.decodeFile(Picture)) } […]

Android:片段上的按钮

嗨,我刚刚开始与Kotlin的Android应用程序有一个小问题,我的应用程序 当我尝试使用OnclickListener时,我的应用程序崩溃 我的代码 class fr_cooking : Fragment() { override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { button.setOnClickListener({ textView2.text = “blablabla” }) return inflater!!.inflate(R.layout.fragment_fr_cooking, container, false) } }