当我尝试将TextView
的文本从Intent
更改为putExtra字符串时,获取Null Point异常。
这是我的代码:
activity.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Login">
<TextView
android:text="TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/receive"
android:textSize="10sp"
/>
</LinearLayout>
activity1.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
fun begin(view: View){
val intent = Intent(this, Login::class.java)
intent.putExtra("Key", "Value")
startActivity(intent)
}
}
activity2.kt
class Login : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
val s: String = intent.getStringExtra("Key")
println(s)
val textView = findViewById<TextView>(R.id.receive).apply {
text = s
}
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
}
}
有什么问题吗?
答案 0 :(得分:0)
您必须设置如下文本
class Login : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
val s: String = intent.getStringExtra("Key")
println(s)
val textView = findViewById<TextView>(R.id.receive).apply {
text = s
}
}
}
因为在setContentView
中设置值之前必须先textView
。否则,您在获取textView
时会得到null。