当前位置: 首页 > 知识库问答 >
问题:

在Kotlin中读取用户输入时出错

傅越
2023-03-14

我正在尝试使用autocompletetextview创建没有操作栏的搜索工具。到目前为止,布局和建议是有效的,但当我键入搜索时,我键入的任何字符都会给出相同的结果,但它不会根据我键入的文本给出建议。我再次检查,我的输入是“d”,所以我把它改为:

val userInput = readLine()!!
insertData(userInput, 10, "id/suggest")

这一次,我犯了一个错误。这是我的日志

E/AndroidRuntime: FATAL EXCEPTION: main Process:com.example.postrequest, PID: 17116java.lang.RuntimeException:无法启动活动ComponentInfo{com.example.postrequest/com.example.postrequest.MainActivity}:java.lang.IllegalArgumentException:com.android.internal.os.ActivityTaller.runLaunchActive(ActivityTnit.java:438)atcom.android.internal.os.ActivityTnit.mainLaunchActive(ActivityTnit.java:807)atjava.lang.ActivityThread. wrap11(未知来源: 0)atkotlin.io.ActivityThread$H. handleMessage(ActivityTt.read)atandroid.os.Handler.dispatchMessage(Handler.java:106)atandroid.os.Looper.loop(Looper.java:164)atandroid.app.RuntimeInit$Method odAndArgsChread.perform(RuntimeIhread.java:2778)atandroid.app.ZygoteIhread.handle(ZygoteIhread.java:2856)引起的问题:android.app.IllegalArgumentException:android.app.ConsoleKhread.java:1589行不支持每字节多个字符的编码在android. app. active. performCreate(Activity. java: 7009)在android. app. active. performCreate(Activity. java: 7000)在android. app. Instrumentation. call ActivityOnCreate(Instrumentation. java: 1214)在android. app. ActivityThread. performLaunchActive(ActivityThread. java: 2731)在android. app. ActivityThread. handleLaunchactive(ActivityThread. java: 2856)

所以,帮我解决这个问题。提前感谢。

共有2个答案

金英华
2023-03-14

如果你真的想在Android上的控制台上阅读,你可以这样做:

val scanner = Scanner(System.`in`)
userInput = scanner.nextLine()
莫英卓
2023-03-14

首先,你不应该在Android上使用readLine。这种方法从标准输入流中读取数据,这在控制台应用程序中是有意义的,但在Android上是没有意义的,因为这不是用户与应用程序交互的方式(请参阅此处和此处)。

相反,您可能希望在用户可以键入的UI上创建一个EditText,并使用getText从中读取值。

异常的字面解释是:从源代码来看,readLine使用由字符集返回的解码器。defaultCharset()。newDecoder()在其实现中,并要求此CharsetDecoder以每个字节一个字符的方式操作-在Android上返回的实现恰好具有每个字节最多2个字符,因此,readLine中的require调用抛出异常。

 类似资料:
  • 我们如何读取用户的键盘(控制台)输入呢?从键盘和标准输入 os.Stdin 读取输入,最简单的办法是使用 fmt 包提供的 Scan 和 Sscan 开头的函数。请看以下程序: 示例 12.1 readinput1.go: // 从控制台读取输入: package main import "fmt" var ( firstName, lastName, s string i int

  • Android应用程序经常崩溃,以下是logcat的日志。

  • 问题内容: 我正在编写一个连接到servlet的程序,这要感谢a,但是我在检查url时卡住了 我得到了错误: java.net.ProtocolException:读取输入后无法写入输出。 如果我用注释中的代码检查网址,但不幸的是它可以正常工作,我需要检查网址,所以我认为问题出在方法上,但我不知道如何解决 非常感谢你 问题答案: HTTP协议基于请求-响应模式:首先发送请求,然后服务器响应。服务器

  • 在这段两行python代码中: 注意:调试器以前工作得很好。这个问题最近才发生。非常感谢任何帮助或提示。

  • 我试图通过使用Kryonet进行通信来创建一个基本的IRC。我遇到的问题是,在我的代码中,我不能安全地使用允许用户键入和发送消息的main while循环,因为Scanner给出了一个错误,并且似乎跳过了对nextLine()的调用。我想做的是让扫描仪在继续之前等待用户输入。 更准确地说,程序将首先在行的开头放一个“:”,然后在用户按enter键后获取用户键入的任何内容,然后将其发送到服务器。我得