Android Studio Kotlin 将字符串 "abc" 更改为 Int 1



我有一个带3个字符串的Spinner,"a"b"c";并且我想要通过选择字符串发送到新的SecondActivity,并且从字符串";a";在Int 1或Float 1中。这可能吗?

var itemList = arrayOf("a", "b", "c")
Btn.setOnClickListener {
val intent = Intent(this@MainActivity, SecondActivity::class.java)
intent.putExtra("key", itemList[0])
startActivity(intent)
val intent2 = Intent((this@MainActivity, SecondActivity::class.java)
intent2.putExtra("key2", itemList[1])
startActivity(intent2)
val intent3 = Intent((this@MainActivity, SecondActivity::class.java)
intent3.putExtra("key3", itemList[2])
startActivity(intent3)

第二项活动:

var String1 = intent.getStringExtra("key")
var String2 = intent.getStringExtra("key2")
var String3 = intent.getStringExtra("key3")
var bar = 0
var bar2 = 0
var bar3 = 0
bar = numberHantel.toString().toInt()
bar2 = numberHantel.toString().toInt()
bar3 = numberHantel.toString().toInt()

我想把它放在一个字符,但我的应用程序崩溃了。

val entries = ArrayList<BarEntry>()
entries.add(BarEntry(1f, bar.toFloat()))
entries.add(BarEntry(2f, bar.toFloat()))

这是Logcat:

2021-01-02 17:27:28.154 18649-18649/com.example.mobileE/AndroidRuntime:致命异常:主进程:com.example.mobile,PID:18649 java.lang.RuntimeException:无法启动活动ComponentInfo{com.example.mobile.com/example.mobile历史记录}:java.lang.IollegalArgumentException:基数1不在有效范围内2..36在android.app.ActivityThread.performLaunchActivity(ActivityThreads.java:3116)在android.app.ActivityThread.handleLaunchActivity(ActivityThreads.java:3259)在android.app.servertransaction.LaunchActivityItem.exexecute(LaunchActivityItem.java:78)在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)在android.app.ActivityThread$H.handleMessage(ActivityThreads.java:1950)在android.os.Handler.dispatchMessage(Handler.java:106)android.os.Looper.loop(Looper.java:214)android.app.ActivityThread.main(ActivityThreads.java:7073)位于的java.lang.reflect.Method.ioke(本机方法)com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)在com.android.internal.os.ZygoteInit.main(ZygoteNit.java:965)引起by:java.lang.IollegalArgumentException:基数1不在有效范围内2..36在com.example.mobile.History.graph(History.kt:117)上的kotlin.text.CharsKt__CharJVMKt.checkRadix(CharJVM.kt:156)com.example.mobile.History.onCreate(History.kt:69)android.app.Activity.performCreate(Activity.java:7327)android.app.Activity.performCreate(Activity.java:7318)android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3096)在android.app.ActivityThread.handleLaunchActivity(ActivityThreads.java:3259)在android.app.servertransaction.LaunchActivityItem.exexecute(LaunchActivityItem.java:78)在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)在android.app.ActivityThread$H.handleMessage(ActivityThreads.java:1950)在android.os.Handler.dispatchMessage(Handler.java:106)android.os.Looper.loop(Looper.java:214)android.app.ActivityThread.main(ActivityThreads.java:7073)位于的java.lang.reflect.Method.ioke(本机方法)com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)网址:com.android.internal.os.ZygoteInit.main(ZygoteNit.java:965)

和Run输出:

E/AndroidRuntime:致命异常:主进程:com.example.mobile,PID:18459 java.lang.RuntimeException:无法启动活动ComponentInfo{com.example.mobile.com/example.mobile历史记录}:java.lang.NumberFormatException:对于输入字符串:"空";在android.app.ActivityThread.performLaunchActivity(ActivityThreads.java:3116)在android.app.ActivityThread.handleLaunchActivity(ActivityThreads.java:3259)在android.app.servertransaction.LaunchActivityItem.exexecute(LaunchActivityItem.java:78)在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)在android.app.ActivityThread$H.handleMessage(ActivityThreads.java:1950)在android.os.Handler.dispatchMessage(Handler.java:106)android.os.Looper.loop(Looper.java:214)android.app.ActivityThread.main(ActivityThreads.java:7073)位于的java.lang.reflect.Method.ioke(本机方法)com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)在com.android.internal.os.ZygoteInit.main(ZygoteNit.java:965)引起by:java.lang.NumberFormatException:对于输入字符串:"空";在java.lang.Integer.parseInt(Integer.java:615)java.lang.Integer.parseInt(Integer.java:650)com.example.mobilesftnesssensor.History.graph(History.kt:117)com.example.mobilestnesssensor.History.onCreate(History.kt:69)android.app.Activity.performCreate(Activity.java:7327)android.app.Activity.performCreate(Activity.java:7318)android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3096)在android.app.ActivityThread.handleLaunchActivity(ActivityThreads.java:3259)在android.app.servertransaction.LaunchActivityItem.exexecute(LaunchActivityItem.java:78)在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)在android.app.ActivityThread$H.handleMessage(ActivityThreads.java:1950)在android.os.Handler.dispatchMessage(Handler.java:106)android.os.Looper.loop(Looper.java:214)android.app.ActivityThread.main(ActivityThreads.java:7073)位于的java.lang.reflect.Method.ioke(本机方法)com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)网址:com.android.internal.os.ZygoteInit.main(ZygoteNit.java:965)

在您的mainActivity中,您需要有一个全局变量,并将微调器中所选选项的值传递给onItemSelectedListener()块中的变量,如下所示:

var selectedOption = '' //this is a global variable
spinner.onItemSelectedListener = object : OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
selectedOption = parent.getItemAtPosition(position)[0]
}

然后将其添加到您的意图中,并转到SecondActivity:

val intent = Intent(this@MainActivity, SecondActivity::class.java)
intent.putExtra("key", selectedOption)
startActivity(intent)

在SecondActivity中,您可以接收intent extra(这是您的字符),并通过以下方式使用它做任何您想做的事情:

if (intent.hasExtra("key")){
some_variable = intent.getCharExtra("key", '')
}

通过";改变为Int">,你的意思是换成字母表中那个字符的对应数字吗?

最新更新