如何将字符串转换为EditText,我在一个活动中创建一个EditText,然后进行第二个活动,然后通过字符串中的意图获得了此Edittext,然后
如何将其分配给第二个活动的edittext,但是我找不到如何将字符串分配给edittext。这里我使用了go函数,该函数在按钮发生onclick事件时使用
This is my first activity
class MainActivity : AppCompatActivity() , View.OnClickListener{
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
fun go(v:View){
val intent=Intent(this@MainActivity,Main2Activity::class.java)
var aa=EditText1.text
intent.putExtra("name",aa)
startActivity(intent)
}
}
This is my second activity
class Main2Activity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
var str=intent.getStringExtra("name").toString()
et21.setText(str)
}
}
答案 0 :(得分:0)
这是因为您试图将
charSequence
设置为EditText
,只是在从String
获取价值的同时转换为FirstEditText
。
您的第二项活动内-
class Main2Activity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
intent.getStringExtra("name")?.let {
et21.setText(it)
}
}
}
第一次活动中
fun go(v:View){
val intent=Intent(this@MainActivity,Main2Activity::class.java)
var aa=EditText1.text.toString()
intent.putExtra("name",aa)
startActivity(intent)
}
答案 1 :(得分:0)
在您的第一个活动更改中,转到以下功能,
fun go(v:View){
val intent=Intent(this@MainActivity,Main2Activity::class.java)
var aa=EditText1.text.toString()
intent.putExtra("name",aa)
startActivity(intent)
}
在第二个活动中,如下更改onCreate的最后一行,您需要从可为空的类型中解包该值。可以使用可空类型的let块来完成。另外,我假设et21是对编辑文本的引用,并且已正确初始化。 此解决方案是无效的
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
intent.getStringExtra("name")?.let {
et21.setText(it)
}
}
答案 2 :(得分:0)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
val extras:Bundle =intent.extras
val nn=extras.getString("name")
eT21.setText("${nn}")
}
Or
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
eT21.setText(intent.getStringExtra("name"))
}