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
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()
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")
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);
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);
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")
//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)