【发布时间】:2020-12-31 00:53:26
【问题描述】:
我正在尝试为一个小型测验应用程序编写代码。当您单击加号按钮时,它会将您带到一个单独的页面,您可以在其中输入问题和答案。当您单击复选按钮时,它将带您返回上一页,并创建一个新按钮,其中文本设置为问题。当我尝试在我的 buttonclick 事件下放置覆盖时,我遇到了一个错误。无论如何我可以解决这个问题吗?
Newbtn 页面:
package com.example.test
import android.app.Activity
import android.content.Intent
import android.graphics.Color
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.Gravity
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.widget.Button
import android.widget.LinearLayout
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import com.google.android.material.floatingactionbutton.FloatingActionButton
class Newbtn : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_newbtn)
val newbutton = Button(this@Newbtn)
val btn = findViewById<FloatingActionButton>(R.id.btn2)
val intent = getIntent()
val test = intent.getStringExtra("test")
newbutton.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)
newbutton.width=1010
newbutton.height=300
newbutton.gravity = Gravity.CENTER
newbutton.translationX= 65F
newbutton.setTextColor(Color.parseColor("#FFFFFFFF"))
newbutton.setBackgroundColor(Color.parseColor("#250A43"))
newbutton.text = test
btn.setOnClickListener{
val activityCode = 2
startActivityForResult(
Intent(this@Newbtn, QuestionPage::class.java), activityCode
)
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == activityCode && resultCode == Activity.RESULT_OK) {
val buttonText = data?.getStringExtra("test")
newbutton.text = buttonText
}
}
}
}}
问题页面:
package com.example.test
import android.app.Activity
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.EditText
import com.google.android.material.floatingactionbutton.FloatingActionButton
class QuestionPage : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_question_page)
val btn3 = findViewById<FloatingActionButton>(R.id.btn3)
val intent = Intent(this@QuestionPage, Newbtn::class.java)
val question = findViewById<EditText>(R.id.question)
val answer = findViewById<EditText>(R.id.answer)
val questiontext = question.text.toString()
val answertext = answer.text.toString()
val returnIntent = Intent()
returnIntent.putExtra("test", questiontext)
setResult(Activity.RESULT_OK, returnIntent)
finish()
btn3.setOnClickListener{
startActivity(intent)
}
}
}
【问题讨论】:
-
onActivityResult被解释为onCreate中的本地函数,因为您放错了一个或两个}。 -
我应该把 } 放在哪里?
-
您需要在
}关闭onCreate的主体之后或onCreate函数之前声明onActivityResult。 -
当我尝试执行任一操作时,我都无法使用我的 activityCode 和 startActivityforResult 代码。我试图以某种方式定位它,以便在单击按钮时发生所有这一切,以便传输数据。有点不知所措