Tag: 安卓

具有派生属性的Kotlin数据类

我有一堂课是两堂课的总结。 我把这个类做成了一个数据类,如下所示 data class Device(private val deviceModel: DeviceModel, private val deviceStatus: DeviceStatusModel) { val name = deviceModel.name ?: "Unknown" val id = deviceModel.id ?: -1 val mode = when(deviceStatus.mode) { 1 -> DEVICE_MODE_MANUAL 2 -> DEVICE_MODE_AUTO 3 -> DEVICE_MODE_OVERRIDE else -> DEVICE_MODE_MANUAL } val strength = deviceStatus.strength ?: 0 } 但是,当我打印这个类时,它不打印名称,ID,模式和强度属性,它打印设备型号和设备状态。 有没有办法让类生成toString基于派生属性而不是构造函数?

关联android开发人员认证

您好,我有几个问题,谁已经从谷歌采取这一认证。 MVP,MVVM是什么样的设计模式? 我可以使用房间持久性库所有的SQLite任务,或者我应该雕刻出原始​​的SQL查询。 该项目是否使用数据绑定。

UnsupportedOperationException“android”命令不再包含在SDK中

我在Kotlin有项目,我已经更新Android Studio到2.3.3和gradle到3.3,并建立工具到25.3.1。 在建设期间,我得到这个错误: Caused by: java.lang.UnsupportedOperationException: The "android" command is no longer included in the SDK. Any references to it (eg by third-party plugins) should be removed. at com.android.SdkConstants.androidCmdName(SdkConstants.java:1947) at com.android.SdkConstants$androidCmdName$0.callStatic(Unknown Source) at com.jakewharton.sdkmanager.internal.AndroidCommand$Real.<init>(AndroidCommand.groovy:21) at com.jakewharton.sdkmanager.internal.PackageResolver.resolve(PackageResolver.groovy:22) at com.jakewharton.sdkmanager.internal.PackageResolver$resolve.call(Unknown Source) at com.jakewharton.sdkmanager.SdkManagerPlugin$_apply_closure2$_closure3.doCall(SdkManagerPlugin.groovy:44) at com.jakewharton.sdkmanager.SdkManagerPlugin$_apply_closure2$_closure3.doCall(SdkManagerPlugin.groovy) at com.jakewharton.sdkmanager.SdkManagerPlugin.time(SdkManagerPlugin.groovy:51) at com.jakewharton.sdkmanager.SdkManagerPlugin$_apply_closure2.doCall(SdkManagerPlugin.groovy:43) at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:40) at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:25) at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:44) at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:79) […]

从活动Kotlin获得额外的字符串

我想从意图的另一个活动中获得额外的字符串。 这是创建我的意图的方式 val intent = Intent(this, Main2Activity::class.java) intent.putExtra("samplename", "abd") startActivity(intent) 我怎样才能在另一个活动中获得这个意图的价值

如何使用Firebase服务器时间戳生成日期?

目前,Google版本的ServerValue.TIMESTAMP返回{".sv":"timestamp"} ,一旦将数据保存到Firebase服务器,该版本将用作Firebase的指令,以便用该服务器时间戳填充该字段。 但是,当您在客户端创建数据时,您还没有实际的时间戳(即用作创建日期)。 在初始保存和随后的检索之后,您只能访问时间戳,我想 – 这有时为时已晚,不够优雅。 Google之前: 更新:忽略这一部分,因为它是不正确的 – 我误解了这些例子。 ServerValue.TIMESTAMP总是返回{".sv":"timestamp"} 。 据我所知,在谷歌Firebase之前,似乎有一个服务器生成的时间戳,允许您获取实际的时间戳: import com.firebase.client.ServerValue; ServerValue.TIMESTAMP // eg. 1466094046 ( 参考文献1 , 参考文献2 ) 问题: 这样的保存/检索是获得我的模型实例上的服务器生成的创建日期的唯一方法吗? 如果是的话,你能提出一个实施这种模式的方法吗? 我是否正确理解ServerValue.TIMESTAMP随着Google收购Firebase而改变? 更新:不,@FrankvanPuffelen回复说,收购过程中没有任何变化。 注意: 我不考虑在客户端使用new Date() ,因为我一直在阅读它是不安全的,但如果你认为不同,请分享你的想法。

未解决的参考:T

我需要创建一个数据类: data class MyClass(val b: Boolean, val s: String, val flags: Map<Key<T>, T>) 由于“未解决的参考:T” 在flags映射中,我需要Key<String>, String和Key<Int>, Int对,但不要Key<String>, Int 任何想法,我怎么能做到这一点?

如何在Android应用程序中调试“SQL(查询)错误或缺少数据库”?

10-02 01:31:57.697 22242-22242/com.example.android.mynotes E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.android.mynotes, PID: 22242 java.lang.IllegalStateException: Could not execute method for android:onClick at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293) at android.view.View.performClick(View.java:5697) at android.widget.TextView.performClick(TextView.java:10826) at android.view.View$PerformClick.run(View.java:22526) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:158) at android.app.ActivityThread.main(ActivityThread.java:7224) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) at android.view.View.performClick(View.java:5697) at android.widget.TextView.performClick(TextView.java:10826) at android.view.View$PerformClick.run(View.java:22526) […]

带有产品风味和Kotlin的ClassNotFoundException

我有一个主要在Kotlin编写的项目,但有一些Java类。 现在项目进展顺利,我想增加在不同的环境之间切换的可能性,为此我使用了风味: productFlavors { prod { dimension "default" buildConfigField 'boolean', 'FABRIC', 'true' applicationId = "com.myapp" } beta { dimension "default" buildConfigField 'boolean', 'FABRIC', 'true' applicationId = "com.myapp.beta" } dev { dimension "default" buildConfigField 'boolean', 'FABRIC', 'false' applicationId = "com.myapp.dev" } } 然而,当我运行的味道是不生产(这不会改变applicationId),我得到一个Java类的ClassDefNotFoundException: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.myapp.beta.ui.view.ScrollBehavior" on path: DexPathList[[zip file "/data/app/com.myapp.beta-1/base.apk"],nativeLibraryDirectories=[/data/app/com.myapp.beta-1/lib/arm64, /system/lib64, […]

轻扫刷新以更新数据

我有一个recyclerview,当用户刷新刷新时,我想更新。 这是我的MainActity.kt class MainActivity : AppCompatActivity(), LoaderManager.LoaderCallbacks<List<Coin>> { private val mCoinLoaderId = 1 private val mCoinEndpointUrl = "http://coincap.io/front" private var swipeRefreshLayout: SwipeRefreshLayout? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) swipeRefreshLayout= findViewById<SwipeRefreshLayout>(R.id.swipe_refresh_layout) as SwipeRefreshLayout rv_coins.layoutManager = LinearLayoutManager(this) rv_coins.setHasFixedSize(true) runLoaders() swipeRefreshLayout?.setOnRefreshListener{ // This method performs the actual data-refresh operation. // The method calls setRefreshing(false) when […]

Android使用另一个活动保存的信息创建listitem / object

所以这可能是相当混乱的解释,所以我会尽我所能。 所以我一直在这个listView加载一个id(名字)从firebase-firestore,我已经工作了。 我已经做的下一步是,在同一个列表上创建一个按钮,用不同项目的微调器打开一个新的活动。 从那个微调我选择了我的许多项目(从我的firebase-firestore),然后我把它们添加到列表中。 现在,我试图做的和没有管理的是:有一个创建按钮来创建我刚刚创建的列表。 我需要在Firebase-firestore上创建一个文档,然后添加我决定给这个列表的第一个名字(带有Button来创建列表的名字)。 我现在该如何手动完成这个工作:就像在我自己​​创建列表一样,并且从列表中有一个项目打开基于传递意图的某个活动,但这是手动完成的。 我需要它自动化,如果你知道我的意思。 这是流量(认为它会让事情变得更容易理解): 谢谢