Search code examples
androidkotlinandroid-activity

2 activities 1 button


I have MainActivity with button and I want to move between 2 other activities from MainActivity with 1 button. I tried to use intent.getExtra with if but it didn't work or I used it wrong. Can you help with it?

Firstchoose.kt

package anti.stress.antistress

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import kotlinx.android.synthetic.main.activity_firstchoose.*

class Firstchoose : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_firstchoose)

        val one = findViewById<Button>(R.id.one)
        one.setOnClickListener {
            val one = Intent(this, Fiveways::class.java).putExtra("f",1)
            //one.putExtra("c",1)
            startActivity(one)

        eight.setOnClickListener {
            val eight = Intent(this, Fiveways::class.java).putExtra("ei",8)
            //eight.putExtra("c",8)
            startActivity(eight)
        }
    }
}

Fiveways.kt is

package anti.stress.antistress

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_fiveways.*

class Fiveways : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_fiveways)

        angry2.setOnClickListener{
            val angry = Intent(this, Advice::class.java)
            startActivity(angry)
        }
        alone4.setOnClickListener{
            val alone = Intent(this, Adviceofv::class.java)
            startActivity(alone)
        }
        sad3.setOnClickListener {
            val sad = Intent(this, Adviceoth::class.java)
            startActivity(sad)
        }
        useless3.setOnClickListener {
            val useless = Intent(this, Adviceof::class.java)
            startActivity(useless)
        }
        afraid2.setOnClickListener {
            val afraid = Intent(this, Adviceot::class.java)
            startActivity(afraid)
        }
    }
}

Fiveways.kt is open by both buttons (one and eight) but if I clicked on FirstchooseActivity buttonone then buttonangry2 will open AdviceActivity, if I clicked on FirstchooseActivity button eight then but buttonangry2 must open OtherAdviceActivity. Can somebody help with it? Maybe I don't need intent.putExtra?


Solution

  • You need to do is first write the condition and pass Intent in it accordingly like, first when if(your condition1) then pass Intent for whatever activity you wanted to open and then into else part or into else if condition add another Intent for whatever another activity you want to open.

    if(your condition1){
      angry2.setOnClickListener{
            val angry = Intent(this, Advice::class1.java)
            startActivity(angry)
        }
    else if(your condition2){
     angry2.setOnClickListener{
            val angry = Intent(this, Advice::class2.java)
            startActivity(angry)
        }
    

    }

    Hope so it will help you.