web-dev-qa-db-fra.com

Comment passer des valeurs d'activité à une autre activité dans kotlin

Alors que je suis en train d’apprendre le développement de Kotlin pour Android, j’essaie maintenant les programmes de base comme hello world et la manière de naviguer d’une activité à l’autre. 

Mon souci est que lorsque je passe d’une activité à une autre, cela fonctionne bien mais je ne sais pas comment passer des valeurs entre les activités.

Je suis fatigué de définir les valeurs dans une activité et récupéré dans une autre activité, cela ne fonctionne pas 

S'il vous plaît voir l'extrait de code ci-dessous 

Ceci est mon activité principale où je prends le nom d'utilisateur et le mot de passe d'éditer le texte et le paramétrage à l'intention 

class MainActivity : AppCompatActivity() {
    val userName = null
    val password = null
    override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    button.setOnClickListener {
        val intent = Intent(this@MainActivity,SecondActivity::class.Java);
        var userName = username.textø
        var password = password_field.text
        intent.putExtra("Username", userName)
        intent.putExtra("Password", password)
        startActivity(intent);
    }
}

}

C'est ma deuxième activité où je dois recevoir des valeurs de l'activité principale 

class SecondActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_second)
        var strUser: String = intent.getStringExtra("Username")
        var strPassword: String = intent.getStringExtra("Password")
        user_name.setText("Seelan")
        passwor_print.setText("Seelan")

    }
}

S'il vous plaît guidez-moi comment faire cela, si si j'ai un autre moyen de le faire en kotlin sinon par intention 

Merci d'avance 

11
Jeyaseelan

Je suis sur mobile, vous devez tester par vous-même.

Essayez de transformer un CharSequence en un String dans MainActivity, vous avez mis un CharSequence plutôt qu'un String, par exemple

var userName = username.text.toString()
var password = password_field.text.toString()
6
holi-java

Envoyer une valeur de HomeActivity

val intent = Intent(this@HomeActivity,ProfileActivity::class.Java)
intent.putExtra("Username","John Doe")
startActivity(intent)

Obtenir des valeurs dans ProfileActivity

val profileName=intent.getStringExtra("Username")
10
Sudip Sadhukhan

Dans Kotlin, vous pouvez transmettre les données simplement en utilisant les intentions. Vous pouvez directement mettre vos données dans l'intention ou les écrire dans un ensemble et les envoyer à une autre activité utilisant l'intention.

val intent = Intent(this@HomeActivity,ProfileActivity::class.Java);
intent.putExtra("profileName", "John Doe")
var b = Bundle()
b.putBoolean("isActive", true)
intent.putExtras(b)
startActivity(intent);
3
AaRiF

Vous pouvez simplement utiliser les intentions et le regroupement pour envoyer des données d'une activité à une autre activité.

val intent = Intent(this@OneActivity,TwoActivity::class.Java);
intent.putExtra("username", userName)
startActivity(intent);
2
Android.Dev17

vous devriez d'abord faire ceci,

var userName = username.text.toString()
var password = password_field.text.toString()

Ajouter une dépendance Anko.

 implementation "org.jetbrains.anko:anko:0.10.4"

l'information passant à l'intérieur de MainActivity() est comme 

startActivity<SecondActivity>("Username" to userName,"Password" to password )

obtenir des informations de SecondActivity() est, 

val profileName=intent.getStringExtra("Username")
2
Muhammed Haris
    //On Click on Button 

    var but = findViewById<Button>(R.id.buttionActivity_two) as Button

            but.setOnClickListener {
    //Define intent 
                var intent = Intent(applicationContext,MainActivity::class.Java)
// Here "first" is key and 123 is value                
intent.putExtra("first",123)
                startActivity(intent)

            }

        }

// If Get In Into Other Activity
var Intent1: Intent
Intent1= getIntent()
//Here first is key and 0 is default value
      var obj :Int  =  Intent1.getIntExtra("first",0);
      Log.d("mytag","VAlue is==>"+obj)
0
Love kothari