我正在使用Kotlin和Realm编写数据类
data class AuthToken(val register: Boolean,
val token: String,
val tokenSecret: String,
val user: AuthUser)
Run Code Online (Sandbox Code Playgroud)
我必须将数据保存到db,所以我使用Realm来保存它.但是正如我们所知,如果我想将类保存到Realm,那么AuthToken
该类必须扩展RealmObject
.
这就是问题,Kotlin说数据类不能扩展类.所以我放弃数据类,只使用普通的Kotlin类作为模型,然后另一个问题来了:
Kotlin类没有吸气剂或固定剂.我们知道Realm类必须将所有属性设置为private并编写getter和setter.
现在我想知道如何解决这个问题.
我正在尝试写kotlin代码,如:
for (byte b : hash)
stringBuilder.append(String.format("%02x", b&0xff));
Run Code Online (Sandbox Code Playgroud)
但我与"&"无关.我正在尝试使用"b和0xff"但它不起作用.按位"和"似乎适用于Int,而不是字节.
java.lang.String.format("%02x", (b and 0xff))
Run Code Online (Sandbox Code Playgroud)
可以使用
1 and 0xff
Run Code Online (Sandbox Code Playgroud) 我做了一切,正如官方文档所写.但是当我向后导航时,MainActivity(父)不会打开.相反,应用程序关闭.
这是我的代码:
Intent resultIntent = new Intent(context, TestActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
stackBuilder.addParentStack(TestActivity.class);
stackBuilder.addNextIntent(resultIntent);
Run Code Online (Sandbox Code Playgroud)
清单如下:
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".TestActivity"
android:parentActivityName=".MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".Main2Activity" />
</activity>
Run Code Online (Sandbox Code Playgroud)
谢谢.
我的代码是这样的:
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe ({
adapter.notifyDataSetChanged()
})
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:只有创建视图层次结构的原始线程才能触及其视图. 所以我把它改成:
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe ({
runOnUiThread(Runnable {
adapter.notifyDataSetChanged()
})
}
Run Code Online (Sandbox Code Playgroud)
这很有道理.所以我很困惑.我曾经想过.observeOn(AndroidSchedulers.mainThread())
订阅块中的代码在ui线程上运行,但我是如何得到这个错误的?
我正在撰写文档评论来描述一种方法.
/**
* <p>necessary
* <p>setType is to set the PendingIntend's request code</p>
*/
Run Code Online (Sandbox Code Playgroud)
但它不会显示段落.如果我不使用<p>
,所有文档都在一行中没有任何中断.它适用于Java类,但是当谈到Kotlin时,我不知道如何处理它.