当我正在学习用于Android开发的Kotlin时,我现在正在尝试像hello world这样的基本程序以及如何从一个活动导航到另一个活动,这里没有问题。
我担心的是,当我从一个活动转移到另一个活动时,它工作正常,但我不知道如何在活动之间传递值。
我厌倦了在一个活动中设置值并在另一个活动中检索它不起作用。
请参阅下面的代码段
这是我的主要活动,我从编辑文本和设置到意图的用户名和密码:
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);
}
}
}
这是我的第二个活动,我必须从主要活动中接收值
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")
}
}
请指导我如何做到这一点,无论我是否有其他方式在Kotlin这样做,如果不是故意的。
我在移动,你必须自己测试。
尝试在CharSequence
制作一个String
到MainActivity
,你放了一个CharSequence
而不是String
,例如:
var userName = username.text.toString()
var password = password_field.text.toString()
从HomeActivity发送值
val intent = Intent(this@HomeActivity,ProfileActivity::class.java)
intent.putExtra("Username","John Doe")
startActivity(intent)
在ProfileActivity中获取值
val profileName=intent.getStringExtra("Username")
在Kotlin中,您只需使用Intents即可传递数据。您可以直接将数据放入intent中,也可以将这些数据写入bundle中,然后使用intent将该bundle发送到另一个activity。
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);
您可以简单地使用意图和包来将数据从一个活动发送到另一个活动。
val intent = Intent(this@OneActivity,TwoActivity::class.java);
intent.putExtra("username", userName)
startActivity(intent);
首先你应该这样做,
var userName = username.text.toString()
var password = password_field.text.toString()
添加Anko依赖项。
implementation "org.jetbrains.anko:anko:0.10.4"
在MainActivity()
内部传递的信息就像
startActivity<SecondActivity>("Username" to userName,"Password" to password )
从SecondActivity()
获取信息,
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)