Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何让编辑文本保存多次?_Android_Kotlin - Fatal编程技术网

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)
完成()
}
}
}

您可以使用共享首选项来实现这一点。您可以使用共享首选项来实现这一点