Kotlin中如何使用putextra()
How to use putextra () in Kotin
我想从 Sub-Activity1 的“编辑文本部分”发送数据(数字)(用户输入一个简单的数字)并在另一个 Sub-activity2 中接收,这取决于我想要的数字显示不同的文本集。我是初学者,我被困在 Sub-Activity 2 中,因为 val str
出现 returns 错误,我想在其中接收和操作从 Sub-Activity 收到的数字1 editText
.
亚Activity 1 :
<发送并打开子-Activity2>
getResult.setOnClickListener {
val intent = Intent(this, subactivity::class.java)
val name: String = editTextID.getText().toString()
intent.putExtra(name:"editTextID",value:"7.0")
startActivity(intent)
这个returns没有错误。
Sub-Activity 2: <接收和操作文本>
class subactivity2 : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_subactivity2)
val str =intent.getStringExtra("editTextID")
when str == 7.0 {
infoTextView.textview.text= "textIwannaShow"
}
}
在您的 Sub-Activity 2 中,您收到的是 String
而不是 Integer
。
因此,您应该更改此代码
val str =intent.getStringExtra("editTextID")
对此
val str =intent.getIntExtra("editTextID", 0)
无论如何,在示例中您传递的 7.0
即 Double
,因此您可能需要这个而不是上面的代码
val str =intent.getDoubleExtra("editTextID", 0.0)
Franz 关于您想要传递 Double
的说法可能是正确的,但是由于您将其作为 String
传递并且还将您的 val 命名为 str
,我假设您确实想传递一个字符串(恰好代表一个数字)。在这种情况下,您需要与字符串进行比较
if (str == "7.0") {
infoTextView.textview.text = "textIwannaShow"
}
或者如果您确实想要 when
块
when(str) {
"7.0" -> infoTextView.textview.text = "textIwannaShow"
}
如果您真的想使用数字,您必须在某个时候对您的字符串调用 toDouble()
以将其转换为一个。 toDoubleOrNull
如果您从文本输入中获取该数字会更好(以防用户未输入有效数字),但您实际上并没有使用从 EditText
中获取的值
我想从 Sub-Activity1 的“编辑文本部分”发送数据(数字)(用户输入一个简单的数字)并在另一个 Sub-activity2 中接收,这取决于我想要的数字显示不同的文本集。我是初学者,我被困在 Sub-Activity 2 中,因为 val str
出现 returns 错误,我想在其中接收和操作从 Sub-Activity 收到的数字1 editText
.
亚Activity 1 : <发送并打开子-Activity2>
getResult.setOnClickListener {
val intent = Intent(this, subactivity::class.java)
val name: String = editTextID.getText().toString()
intent.putExtra(name:"editTextID",value:"7.0")
startActivity(intent)
这个returns没有错误。
Sub-Activity 2: <接收和操作文本>
class subactivity2 : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_subactivity2)
val str =intent.getStringExtra("editTextID")
when str == 7.0 {
infoTextView.textview.text= "textIwannaShow"
}
}
在您的 Sub-Activity 2 中,您收到的是 String
而不是 Integer
。
因此,您应该更改此代码
val str =intent.getStringExtra("editTextID")
对此
val str =intent.getIntExtra("editTextID", 0)
无论如何,在示例中您传递的 7.0
即 Double
,因此您可能需要这个而不是上面的代码
val str =intent.getDoubleExtra("editTextID", 0.0)
Franz 关于您想要传递 Double
的说法可能是正确的,但是由于您将其作为 String
传递并且还将您的 val 命名为 str
,我假设您确实想传递一个字符串(恰好代表一个数字)。在这种情况下,您需要与字符串进行比较
if (str == "7.0") {
infoTextView.textview.text = "textIwannaShow"
}
或者如果您确实想要 when
块
when(str) {
"7.0" -> infoTextView.textview.text = "textIwannaShow"
}
如果您真的想使用数字,您必须在某个时候对您的字符串调用 toDouble()
以将其转换为一个。 toDoubleOrNull
如果您从文本输入中获取该数字会更好(以防用户未输入有效数字),但您实际上并没有使用从 EditText
中获取的值