Android 如何让编辑文本保存多次?
我有一个带有按钮的布局,当点击按钮时,用户会进入一个包含两个编辑文本的页面,一个用于提问,一个用于回答。单击该活动上的“检查”按钮时,用户将返回到上一个活动,并使用设置为问题的文本创建一个新的动态按钮。我有输入的编辑文本保存。我的问题是,当我试图编辑一个已经存在的编辑文本时,它不会保存,而是保留原来输入的文本。我知道问题是,在我的代码中,我有它,因此只有在单击第一页上的加号按钮时才能访问意图,但是,我不知道如何在单击编辑文本页上的按钮时再次保存编辑文本 主页:Android 如何让编辑文本保存多次?,android,kotlin,Android,Kotlin,我有一个带有按钮的布局,当点击按钮时,用户会进入一个包含两个编辑文本的页面,一个用于提问,一个用于回答。单击该活动上的“检查”按钮时,用户将返回到上一个活动,并使用设置为问题的文本创建一个新的动态按钮。我有输入的编辑文本保存。我的问题是,当我试图编辑一个已经存在的编辑文本时,它不会保存,而是保留原来输入的文本。我知道问题是,在我的代码中,我有它,因此只有在单击第一页上的加号按钮时才能访问意图,但是,我不知道如何在单击编辑文本页上的按钮时再次保存编辑文本 主页: package com.e
package com.example.uh
import android.app.Activity
import android.app.AlertDialog
import android.content.Intent
import android.graphics.Color
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.Gravity
import android.widget.Button
import android.widget.LinearLayout
import android.widget.TextView
import com.google.android.material.floatingactionbutton.FloatingActionButton
class MainActivity : AppCompatActivity() {
private val questionActivityCode = 2
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
findViewById<FloatingActionButton>(R.id.btn2).setOnClickListener{
startActivityForResult(Intent(this@MainActivity, SecondActivity::class.java), questionActivityCode)
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == questionActivityCode && resultCode == Activity.RESULT_OK) {
createNewButtonWithText(data?.getStringExtra("test") ?: "", data?.getStringExtra("test2") ?: "")
}
}
private fun createNewButtonWithText(text: String, s: String)
{
val newbutton = Button(this@MainActivity)
val layout = findViewById<LinearLayout>(R.id.mainlayout)
newbutton.text = text
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"))
layout.addView(newbutton)
val inflator = layoutInflater
val builder = AlertDialog.Builder(this)
val intent1 = Intent(this@MainActivity, SecondActivity::class.java)
intent1.putExtra("test", text)
intent1.putExtra("test2", s)
newbutton.setOnClickListener{
val dialogLayout = inflator.inflate(R.layout.text, null)
with(builder) {
setTitle(newbutton.text)
setPositiveButton("Edit"){dialog, which ->
startActivity(intent1)
}
setNegativeButton("Delete"){dialog, which ->
layout.removeView(newbutton)
}
setView(dialogLayout)
show()
}
}
}}
package com.example.uh
导入android.app.Activity
导入android.app.AlertDialog
导入android.content.Intent
导入android.graphics.Color
导入androidx.appcompat.app.appcompat活动
导入android.os.Bundle
导入android.util.Log
导入android.view.Gravity
导入android.widget.Button
导入android.widget.LinearLayout
导入android.widget.TextView
导入com.google.android.material.floatingactionbutton.floatingactionbutton
类MainActivity:AppCompatActivity(){
private val questionActivityCode=2
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
findViewById(R.id.btn2).setOnClickListener{
startActivityForResult(意图(this@MainActivity,SecondActivity::class.java),questionActivityCode)
}
}
重写activityResult(请求代码:Int,结果代码:Int,数据:Intent?){
super.onActivityResult(请求代码、结果代码、数据)
如果(requestCode==questionActivityCode&&resultCode==Activity.RESULT\u OK){
createNewButtonWithText(数据?.getStringExtra(“测试”)?:“”,数据?.getStringExtra(“测试2”):“”)
}
}
private fun createNewButtonWithText(text:String,s:String)
{
val newbutton=按钮(this@MainActivity)
val布局=findViewById(R.id.mainlayout)
newbutton.text=文本
newbutton.layoutParams=LinearLayout.layoutParams(LinearLayout.layoutParams.WRAP_内容,LinearLayout.layoutParams.WRAP_内容)
纽扣宽度=1010
纽扣高度=300
newbutton.gravity=gravity.CENTER
纽扣平移X=65F
newbutton.setTextColor(Color.parseColor(“#ffffffffff”))
newbutton.setBackgroundColor(Color.parseColor(“#250A43”))
layout.addView(新按钮)
val充气机=充气机
val builder=AlertDialog.builder(此)
val intent1=Intent(this@MainActivity,SecondActivity::class.java)
intent1.putExtra(“测试”,文本)
intent1.putExtra(“test2”,s)
newbutton.setOnClickListener{
val dialogLayout=充气机。充气(R.layout.text,null)
与(建筑商)合作{
setTitle(newbutton.text)
setPositiveButton(“编辑”){对话框,其中->
星触觉(意图1)
}
setNegativeButton(“删除”){对话框,其中->
layout.removeView(新按钮)
}
setView(对话框布局)
show()
}
}
}}
第二页:
package com.example.uh
import android.app.Activity
import android.content.Intent
import android.os.Bundle
import android.widget.EditText
import androidx.appcompat.app.AppCompatActivity
import com.google.android.material.floatingactionbutton.FloatingActionButton
class SecondActivity : AppCompatActivity() {
private val questionActivityCode = 2
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second)
val question = findViewById<EditText>(R.id.question)
val answer = findViewById<EditText>(R.id.answer)
val value = intent.getStringExtra("test")
question.setText(value)
val value2 = intent.getStringExtra("test2")
answer.setText(value2)
findViewById<FloatingActionButton>(R.id.btn3).setOnClickListener {
val questiontext = question.text.toString()
val answertext = answer.text.toString()
val answer2 = intent.putExtra("answer", answertext)
val returnIntent = Intent()
returnIntent.putExtra("test", questiontext)
returnIntent.putExtra("test2", answertext)
setResult(Activity.RESULT_OK, returnIntent)
finish()
}
}
}
package com.example.uh
导入android.app.Activity
导入android.content.Intent
导入android.os.Bundle
导入android.widget.EditText
导入androidx.appcompat.app.appcompat活动
导入com.google.android.material.floatingactionbutton.floatingactionbutton
类SecondActivity:AppCompatActivity(){
private val questionActivityCode=2
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_秒)
val question=findViewById(R.id.question)
val answer=findViewById(R.id.answer)
val值=intent.getStringExtra(“测试”)
问题.setText(值)
val value2=intent.getStringExtra(“test2”)
答案.setText(值2)
findViewById(R.id.btn3).setOnClickListener{
val questiontext=question.text.toString()
val answertext=answer.text.toString()
val answer2=intent.putExtra(“应答”,应答文本)
val returnIntent=Intent()
returnIntent.putExtra(“测试”,问题文本)
returnIntent.putExtra(“test2”,answertext)
setResult(Activity.RESULT_OK,returnIntent)
完成()
}
}
}
您可以使用共享首选项来实现这一点。您可以使用共享首选项来实现这一点