2 действия 1 кнопка - PullRequest
       14

2 действия 1 кнопка

0 голосов
/ 01 ноября 2019

У меня есть MainActivity с кнопкой, и я хочу перейти между двумя другими действиями из MainActivity с 1 кнопкой. Я пытался использовать intent.getExtra с if, но он не работал, или я использовал его неправильно. Можете ли вы помочь с этим?

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 открывается обеими кнопками (одна и восемь)но если я нажал кнопку FirstchooseActivity one, то кнопка angry2 откроет AdviceActivity, если я нажал кнопку FirstchooseActivity eight, тогда кнопка angry2 должна открыть OtherAdviceActivity. Может ли кто-нибудь помочь с этим? Может быть, мне не нужно intent.putExtra?

Ответы [ 3 ]

0 голосов
/ 01 ноября 2019

Я не думаю, что вам нужна дополнительная для этого. В вашей основной деятельности проверьте значение вашей переменной перед намерением.

if(value == 1){
      angry2.setOnClickListener{
            val angry = Intent(this, Advice::class1.java)
            startActivity(angry)
        }
  else if(value == 2){
     angry2.setOnClickListener{
            val angry = Intent(this, Advice::class2.java)
            startActivity(angry)
        }
}
0 голосов
/ 01 ноября 2019

Вы можете получить намерение от основной деятельности, как

  val value= getIntent().getIntExtra("f")
  angry2.setOnClickListener{
        if (value == 1) {
            val angry = Intent(this, First::class.java)
        startActivity(angry)
        }else{
        val angry = Intent(this, Advice::class.java)
        startActivity(angry)  
      }

    }
0 голосов
/ 01 ноября 2019

Вам нужно сначала написать условие и передать в нем Intent соответственно, сначала, когда if (ваше условие1), затем передать Intent для любого действия, которое вы хотели открыть, а затем в другую часть или в else, если условие добавляет другое 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)
    }

}

Надеюсь, что это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...