Autosave 的选项会被记录下来,选中Autosave 时,可以自动保存记事本中的内容,下次启动时自动加载内容;不选中时不会自动保存,下次启动时记事本为空。
MainActivity:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val checkBox:CheckBox = findViewById(R.id.autosave)
val editText:EditText = findViewById(R.id.editText)
val button:Button = findViewById(R.id.clear)
checkBox.setOnClickListener {
val inputText = editText.text.toString()
save(inputText)
}
button.setOnClickListener {
editText.text = null
}
val inputText = load()
if(inputText.isNotEmpty()){
editText.setText(inputText)
editText.setSelection(inputText.length)
}
}
private fun save(inputText:String){
try {
val output = openFileOutput("data",Context.MODE_PRIVATE)
val writer = BufferedWriter(OutputStreamWriter(output))
writer.use {
it.write(inputText)
}
}catch (e:IOException){
e.printStackTrace()
}
}
private fun load():String{
val content = StringBuilder()
try{
val input = openFileInput("data")
val reader = BufferedReader(InputStreamReader(input))
reader.use {
reader.forEachLine {
content.append(it)
}
}
}catch (e:IOException){
e.printStackTrace()
}
return content.toString()
}
}
界面代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="500dp"
android:layout_marginTop="5dp"
android:gravity="top"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<CheckBox
android:id="@+id/autosave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Autosave"
android:textSize="20sp"/>
<Button
android:id="@+id/clear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="160dp"
android:text="CLEAR"/>
</LinearLayout>
</LinearLayout>