【发布时间】:2019-01-11 09:40:37
【问题描述】:
我有 2 个活动,第一个是 CategoryActivity,第二个是 QuestionActivity。 在 CategoryActivity 我有一个列出类别的 recyclerview,在 Category Activity 中,我有一个数组。当我点击eksterior时,它会转到questionActivity,当我点击提交时,它会返回CategoryActivity并将数据发送到CategotyActivity。发送的数据被输入到数组中,所以数组是这样的:array [] = {“1”};然后我点击recyclerview内部的第二个项目,然后它会再次进入QuestionActivity,当我点击提交时,它会将数据发送到CategoryActivity并将其添加到上一个数组中,所以数组将是这样的:array [] = {“1”,”1”};以此类推,直到recyclerview上的项目用完。我试过这样:
QuestionActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_result)
button_save.setOnClickListener(){
val intent = Intent(this@ResultActivity, KategoriActivity::class.java)
intent.putExtra(KategoriActivity.Companion.ARRAY, "1")
startActivity(intent)
}
}
CategoryActivity.kt
var list = arrayOf(intent.getStringExtra(ARRAY))
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_category)
Toast.makeText(this@KategoriActivity, ""+ list, Toast.LENGTH_SHORT).show()
}
companion object {
val ARRAY = "array"
}
override fun onBackPressed() {
Toast.makeText(this@KategoriActivity, ""+ list, Toast.LENGTH_SHORT).show()
if (list.size == kategoriDatas!!.size){
onBackPressed()
} else {
val builder = AlertDialog.Builder(this)
builder.setMessage("You Must Finish All The Category")
// add a button
builder.setPositiveButton("OK", null)
// create and show the alert dialog
val dialog = builder.create()
dialog.show()
}
}
问题是当我打开类别活动时,应用程序停止,日志显示Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Intent.getStringExtra(java.lang.String)' on a null object reference
数据无法推送到数组,请帮帮我
【问题讨论】:
-
把你的
var list = arrayOf(intent.getStringExtra(ARRAY))放在setContentView下面。 -
应用程序没有停止但 toast 显示 [Ljava.lang.String;@8e6837c
-
@Prexx 我已经编辑了我的问题