Tag: 安卓

与Android的Kotlin:基类和Kotlin Android扩展

所以我使用Kotlin Android Extensions ,我觉得它很容易使用,非常值得。 没有更多的findViewById或Butterknife.Bind(…) 。 除了一种情况,我没有发现任何问题。 在基类中,例如, BaseActivity ,通常会有一堆视图出现在所有布局中,例如工具栏。 和常见的操作,如changeToolbarColor()或setToolbarTitle() 。 在这种简单的情况下,我不能使用Kotlin Android Extensions ,因为它是一个基类,视图本身将出现在多个布局上,而且不能被属性导入。 在这种情况下,我只是简单地使用by lazy {find(…) 。 有没有什么办法可以用内置的android扩展插件来完成?

在Kotlin中定义log TAG常量的最佳方法是什么?

我在我的Android应用程序中创建了我的第一个Kotlin类。 通常为了记录的目的,我有一个名字为TAG的常量。 我会在Java中做什么是: private static final String TAG = MyClass.class.getSimpleName(); 我知道在Kotlin类中我可以用这种方式创建TAG : private val TAG = MyClass::class.java.simpleName 这对于使用Java和Kotlin的项目来说是可以的,但是如果我开始一个仅在Kotlin中的新项目呢? 我怎样才能定义TAG常量? 有没有更多的KOTLIN方式,我没有这个奇怪的建设class.java.simpleName ?

Android Studio 3 canary&Kotlin

有没有人得到消息“Kotlin未配置” 我确定我错过了一些东西,但是大部分我都下载了它,只是导入了我现有的2.x设置。 我尝试从java类复制/粘贴到一个新的Kotlin文件,这就是我所在的地方。 这是我目前的顶级build.gradle buildscript { repositories { jcenter { url = “http://jcenter.bintray.com/” } maven { url = “https://maven.google.com” } mavenCentral() } dependencies { classpath ‘com.android.tools.build:gradle:3.0.0-alpha1’ } } allprojects { repositories { jcenter { url = “http://jcenter.bintray.com/” } maven { url = “https://maven.google.com” } mavenCentral() } } 然后在我的模块构建文件的顶部我有这两行 apply plugin: ‘com.android.application’ apply plugin: ‘kotlin-android’ 目前的错误是“插件与id’kotlin-android’未find”

Kotlinfunction:需要的单位? findInt

在Kotlin反复面对这个问题 fun test(){ compute { foo -> Log.e(“kotlin issue”, “solved”) } // This line is //showing error } fun compute(body: (foo:String) -> Unit?){ body.invoke(“problem solved”) } 我在Studio中遇到错误。 这是一个截图。

kapt构建失败与匕首Android处理器

我试图用Kotlin注解处理工具 (kapt)在我的项目中包含Dagger Android处理器( 在此记录)。 我已经在我的build.gradle文件中包含了适当的依赖关系: apply plugin: ‘com.android.application’ apply plugin: ‘kotlin-android’ apply plugin: ‘kotlin-kapt’ android { compileSdkVersion 25 buildToolsVersion “25.0.2” defaultConfig { applicationId “com.example.app” minSdkVersion 16 targetSdkVersion 25 versionCode 1 versionName “1.0” testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner” } sourceSets { main.java.srcDirs += ‘src/main/kotlin’ } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } } dependencies { […]

如何在Android片段中正确实现一个接口?

乡亲。 我一直在与kotlin一个项目工作,我需要做一个片段,与父母的活动交流…我完全按照谷歌和其他网站的建议,但我仍然得到一个错误“活动不会覆盖任何东西”…所有其他解决方案都不适合我…这里是代码。 分段 package com.me.assistan.assistant import android.app.Activity import android.app.DatePickerDialog import android.app.TimePickerDialog import android.content.Context import android.content.Intent import android.graphics.drawable.GradientDrawable import android.os.Bundle import android.support.v4.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.CompoundButton import android.widget.LinearLayout import android.widget.ToggleButton import kotlinx.android.synthetic.main.content_newplan.* import java.util.* class addingTask : Fragment(), View.OnClickListener{ var func = Functions var globalTask = GlobalTask private lateinit var listener: OnTimeSettedListener […]

如何修复在Kotlin中创建一个Spinner的时候,在一个Fragment的旋转屏幕上指定为非null的参数为null?

你好大家在我的片段,我已经在我的片段中添加了一个微调和一点点的代码来计算痣,但是当我旋转屏幕崩溃,并抛出一个错误,我不知道为什么它崩溃,当试图检查Non-空对象我不是什么错误的原因,这里是错误的: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull 这是我的第一个片段文件: private var mListener: OnFragmentInteractionListener? = null override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { // Inflate the layout for this fragment return inflater!!.inflate(R.layout.fragment_first, container, false) } override fun onViewCreated(view: View?, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) //activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) /*Find the id of spinner*/ val […]

Android WebView – JWT身份validation

我有一个Android应用程序,我正在从基本身份validation切换到JWT,所以,除了其他原因,我不必在本地存储用户的密码。 这对我所有的API请求都很有效,但我的应用程序的一部分使用WebView来显示托管在我的服务器上的自定义内容。 此内容还需要身份validation,目前我使用WebViewClient类中的用户名/密码组合来提供凭据。 现在我要去智威汤逊我不再有这些凭据,只有令牌。 有没有办法提供替代身份validation的WebViewClient ? 我的代码是Kotlin,但同样的原则适用于Java。 inner class WVClient : WebViewClient() { override fun onReceivedHttpAuthRequest(view: WebView, handler: HttpAuthHandler, host: String, realm: String) { // WHAT DO I DO HERE INSTEAD? handler.proceed(username, password) } }

用drawable查看setBackground去除高程的阴影

我尝试将Material Design的高程概念实现到我的RecyclerView。 对于RecyclerView的每个项目,我都使用这个 当我选择项目时,我以可编程的方式将效果应用于背景,并按照材料设计规范的建议将高程设置为8dp。 val draw = ResourcesCompat.getDrawable(resources, R.drawable.selected_task, null) draw?.setColorFilter(task.color.aRGB.toInt(), PorterDuff.Mode.OVERLAY) view.background = draw view.elevation = 8F (我在Kotlin编码)drawable: 和颜色值 #78000000 #32000000 问题是,当我选择一个项目,绘制的是很好地应用,但阴影被删除,而不是放大! 如果我没有使用drawable来设置背景,那么效果很好。 阴影像预期的那样被放大。 问题是什么 ?

使用Kapt和Dagger2进行注释处理时出错

我花了一些时间与我的错误,但没有任何积极的结果,所以我可能有人可以帮助。 我的项目中有3个模块:应用程序(android),数据,域 – 都是纯kotlin。 所有DI都在应用程序模块中。 ApplicationComponent&ApplicationModule: @Singleton @Component(modules = arrayOf(ApplicationModule::class, NavigatorModule::class, RepositoryModule::class, FirebaseModule::class, SchedulerModule::class, UseCaseModule::class)) interface ApplicationComponent { fun injectApplication(application: Application) fun loginSubComponent() : LoginSubComponent } @Module class ApplicationModule(private val application: Application) { @Provides @Singleton fun provideApplication() = application } @Module class UseCaseModule { @Provides @Singleton fun provideLoginAccountUseCase(scheduler: ComposeScheduler, repository: AccountRepository) = LoginAccountUseCase(scheduler, repository) @Provides […]

Kotlin language will be the best programming language for Android.