首页 > 解决方案 > 2 个活动 1 个按钮

问题描述

我有带按钮的 MainActivity,我想用 1 个按钮在 MainActivity 的其他 2 个活动之间移动。我尝试将intent.getExtra 与if 一起使用,但它没有用,或者我用错了。你能帮忙吗?

首选.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 是

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 由两个按钮(一个和八个)打开,但如果我单击 FirstchooseActivity 按钮,one那么按钮angry2将打开 AdviceActivity,如果我单击 FirstchooseActivity 按钮,eight那么按钮angry2必须打开 OtherAdviceActivity。有人可以帮忙吗?也许我不需要intent.putExtra

标签: androidkotlinandroid-activity

解决方案


您需要做的是首先编写条件并相应地在其中传递 Intent,例如,首先当 if(your condition1) 然后将 Intent 传递给您想要打开的任何活动,然后进入 else 部分或 else if 条件添加另一个 Intent您要打开的活动。

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

}

希望对您有所帮助。


推荐阅读