0

I have a Spinner with 3 Strings, "a" "b" "c" and i want to send by choose the String to the new SecondActivity and that there change from String "a" in a Int 1 or Float 1. Is this possible?

    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)

second Activity:

  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()

I want to put it in a char but my App crashed.

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

here is the Logcat:

2021-01-02 17:27:28.154 18649-18649/com.example.mobile E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.mobile, PID: 18649 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mobile/com.example.mobile.History}: java.lang.IllegalArgumentException: radix 1 was not in valid range 2..36 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3116) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3259) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1950) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7073) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965) Caused by: java.lang.IllegalArgumentException: radix 1 was not in valid range 2..36 at kotlin.text.CharsKt__CharJVMKt.checkRadix(CharJVM.kt:156) at com.example.mobile.History.graph(History.kt:117) at com.example.mobile.History.onCreate(History.kt:69) at android.app.Activity.performCreate(Activity.java:7327) at android.app.Activity.performCreate(Activity.java:7318) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3096) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3259) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1950) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7073) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)

and the Run output:

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.mobile, PID: 18459 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mobile/com.example.mobile.History}: java.lang.NumberFormatException: For input string: "null" at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3116) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3259) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1950) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7073) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965) Caused by: java.lang.NumberFormatException: For input string: "null" at java.lang.Integer.parseInt(Integer.java:615) at java.lang.Integer.parseInt(Integer.java:650) at com.example.mobilesfitnesssensor.History.graph(History.kt:117) at com.example.mobilesfitnesssensor.History.onCreate(History.kt:69) at android.app.Activity.performCreate(Activity.java:7327) at android.app.Activity.performCreate(Activity.java:7318) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3096) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3259) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1950) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7073) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)

1
  • Post the Logcat output too. It'd be pretty helpful. Commented Dec 29, 2020 at 19:16

1 Answer 1

0

in your mainActivity, you need to have a global variable and pass the value of the selected option in the spinner to the that variable in the onItemSelectedListener() block like so:

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]
        }

And then add it to your intent and go to the SecondActivity:

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

In SecondActivity, you can receive the intent extra (which is your char) and do whatever you want with it this way:

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

By "changing to an Int", do you mean changing to the corresponding number of that char in the alphabet?

Sign up to request clarification or add additional context in comments.

6 Comments

thanks first of all, No i want it to change the string in a float 1F by arrive a data or 0F to add it to the barchart. Because in the discription of the Barchart shows that only Float works.
What exactly do you mean by that? give me an example. like what number would you expect to get for char 'c'? I mean what is your criteria for changing a char to a float?
i have a spinner with 3 different variables, when i take one of them e.g. "a" or "b" or "c"and click on the next button that this variable entry in a barchart. In best way with a timestamp from day.
and why im want to change the variable in a 1 or 0 is that the Barchart only with float work. I think a int 1 or 0 is not the problem to change it in a Float
OK what I don't understand is what number do you expect to get for a char? I mean if it is 'a' you want 1 if 'b' you want 2 if 'c' you want 3? you want the ASCII representation of each letter? or something else? what do you have in mind? It seems like you either don't know what exactly you want or you can't explain it
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.