- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将 Parcelable
对象放入 Intent
到下一个 Activity
:
val intent = Intent(mContext, ShowTestActivity::class.java)
intent.putExtra("test", test)
Log.d("myLog", "${intent.getParcelableExtra<Test>("test")}") // No problem
mContext.startActivity(intent)
并在下一个 Activity
中获取此对象:
if (!intent.hasExtra("test")) throw Exception("Intent doesn't has 'test' extra")
val test: Test = intent.getParcelableExtra("test")
这里抛出异常:
public open class QBase(): Parcelable {
...
protected constructor(parcel: Parcel?) : this() {
parcel?.let {
question = parcel.readString() // parcel.readString() must not be null
helpText = parcel.readString()
qValue = parcel.readDouble()
qType = QType.valueOf(parcel.readString())
}
}
override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeString(question)
parcel.writeString(helpText)
parcel.writeDouble(qValue)
parcel.writeString(qType.name)
}
...
}
在测试中:
public class Test(): Parcelable {
...
public var questions: ArrayList<QBase> = ArrayList()
constructor(parcel: Parcel?): this() {
parcel?.let {
...
parcel.readTypedList(questions, QBase.CREATOR)
}
}
override fun writeToParcel(p: Parcel?, p1: Int) {
p?.let {
...
it.writeTypedList(questions)
}
}
...
}
这是一个异常(exception):
Caused by: java.lang.IllegalStateException: parcel.readString() must not be null at com.vadim.hasdfa.justlearn.Model.Questions.utils.QBase.(QBase.kt:22) at com.vadim.hasdfa.justlearn.Model.Questions.utils.QBase$CREATOR.createFromParcel(QBase.kt:70) at com.vadim.hasdfa.justlearn.Model.Questions.utils.QBase$CREATOR.createFromParcel(QBase.kt:68) at android.os.Parcel.readTypedList(Parcel.java:2432) at com.vadim.hasdfa.justlearn.Model.Test.(Test.kt:28) at com.vadim.hasdfa.justlearn.Model.Test$CREATOR.createFromParcel(Test.kt:47) at com.vadim.hasdfa.justlearn.Model.Test$CREATOR.createFromParcel(Test.kt:45) at android.os.Parcel.readParcelable(Parcel.java:2787) at android.os.Parcel.readValue(Parcel.java:2681) at android.os.Parcel.readArrayMapInternal(Parcel.java:3048) at android.os.BaseBundle.unparcel(BaseBundle.java:257) at android.os.BaseBundle.containsKey(BaseBundle.java:435) at android.content.Intent.hasExtra(Intent.java:6859) at com.vadim.hasdfa.justlearn.Controller.Activity.BrowseTest.ShowTestActivity.onCreate(ShowTestActivity.kt:28) at android.app.Activity.performCreate(Activity.java:6980) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6540) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
最佳答案
question = parcel.readString()//parcel.readString() 不能为空
可能你定义的字段question
是一个非空字段,如果parcel.readString()
的结果返回一个空值,就会有一个java.lang.IllegalStateException
抛出,将val question: String
的定义改成val question: String?
再试。
关于android - IllegalStateException : parcel. readString() 不能为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45688232/
我在运行 OSX 10.9.1 的 Mac 上的 Dr. Java 工作室中运行 javac v1.6.0-65 我收到以下警告: Quick.java:53: warning: [deprecati
我有以下代码,我需要快速执行,但它需要花费大量时间来更改值,无论如何都要加快此任务的速度? 我正在使用 indexOf() 和 substring() 来完成此任务。这是为了改变 LED 条颜色。 /
我正在处理一个带有“客户制造”数据库的项目。他开发了一个 C++/CLI 应用程序,该应用程序使用 BinaryWriter.Write(String) 和 BinaryReader.ReadStri
我正在尝试通过以下方式从网络连接中读取数据: func getIn(conn net.Conn){ for{ in, err := bufio.NewReader(conn).
由于最新的更新 Android Studio 给了我以下警告: Expected type does not accept nulls in Kotlin, but the value may be
我正在开发一个解析器来接收 UDP 信息、解析它并存储它。为此,我使用了 BinaryReader,因为它主要是二进制信息。其中一些将是字符串。 MSDN says对于 ReadString() 函数
我正在从文件中读取记录并插入到数据库中。 我正在使用 DB2 数据库。 记录是这样的: abc pqr abcd 所以在 abc 之前,记录的开头也有几个空格。 我正在使用 Spring
我想使用 System.Xml.XmlReader.ReadString(),但我注意到它没有出现在 Intellisense 中,因为该函数用 [EditorBrowsable(EditorBrow
我正在从我的 android 设备向 esp32 发送一个字符串,我想将 SerialBT.readString() 值存储到一个字符串变量,但它存储为一个空字符串,我该怎么办? if (Serial
我有下一个代码: resp, err := http.Get("https://www.google.com") if err != nil{ panic(err) } r := bufio.
这个问题在这里已经有了答案: Multiple values in single-value context (6 个答案) 关闭 3 年前。 这里是新手。 我正在尝试在 go1.11.4 wind
我正在编写一个应用程序来逐行读取文件列表并进行一些处理。我想尽可能少地使用 RAM。我遇到了这个问题 https://stackoverflow.com/a/41741702/3531263 张贴者说
我将 Parcelable 对象放入 Intent 到下一个 Activity: val intent = Intent(mContext, ShowTestActivity::class.java)
我正在编写代码来从文件中读取字符串。使用时String s = StdIn.readAll();效果很好。但我不明白为什么,通过使用 while (!StdIn.readString().isEmpt
目的是在COM端口中输入“ on”和“ off”并切换引脚13。无论我做什么。它不会打开或关闭。需要帮忙。我试图查看我输入的字符串是否为“ on”。它打印“开”,但是当我检查结果时,它显示出不同的结果
我创建了一个名为 useraccounts.txt 的文本文件。我想做的一切使用文件句柄类读取文件,但我总是得到这个异常 Exception in thread "LWJGL Application"
您好,我是 HTK 的新手,并已遵循 http://htk.eng.cam.ac.uk/ 的 HTK 书中的“使用 HTK 的教程示例” 我已经到了必须使用“HCompV”的地步(3.2.1 第 6
package main import ( "bufio" "fmt" "os" ) func main() { reader := bufio.NewReader(o
我这样做是为了在 CTRL-C 时不再要求输入。 我目前拥有的是一个单独的 go-routine,在收到 CTRL-C 后,会更改变量的值,因此它不会请求另一行。但是,我似乎找不到绕过当前行的方法。
我有一个套接字客户端读取这样的响应: message, err := bufio.NewReader(conn).ReadString('\n') 它工作得很好,但 ReadString 方法似乎对缓
我是一名优秀的程序员,十分优秀!