写一段Android studio的代码,代码关于一个完整的记事本
时间: 2024-02-20 15:00:52 浏览: 223
好的,以下是一个简单的 Android 记事本应用程序的代码示例:
MainActivity.java
```java
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
public class MainActivity extends AppCompatActivity {
private EditText mEditText;
private SharedPreferences mSharedPreferences;
private final String PREFS_NAME = "MyPrefsFile";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditText = findViewById(R.id.edit_text);
mSharedPreferences = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
// 从本地存储中读取文本
String text = mSharedPreferences.getString("text", "");
mEditText.setText(text);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// 添加菜单项
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// 处理菜单项点击事件
switch (item.getItemId()) {
case R.id.action_save:
saveText();
return true;
case R.id.action_load:
loadText();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void saveText() {
// 将文本保存到本地存储中
SharedPreferences.Editor editor = mSharedPreferences.edit();
editor.putString("text", mEditText.getText().toString());
editor.apply();
Toast.makeText(this, "Text saved", Toast.LENGTH_SHORT).show();
}
private void loadText() {
// 从本地存储中读取文本
try {
FileInputStream fis = openFileInput("note.txt");
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
String text;
while ((text = br.readLine()) != null) {
sb.append(text).append("\n");
}
mEditText.setText(sb.toString());
fis.close();
isr.close();
br.close();
} catch (Exception e) {
e.printStackTrace();
}
Toast.makeText(this, "Text loaded", Toast.LENGTH_SHORT).show();
}
@Override
protected void onPause() {
super.onPause();
// 在应用程序暂停时保存文本
saveText();
}
@Override
protected void onStop() {
super.onStop();
// 在应用程序停止时保存文本
saveText();
}
@Override
protected void onDestroy() {
super.onDestroy();
// 在应用程序销毁时保存文本
saveText();
}
}
```
activity_main.xml
```xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter your text here"/>
</LinearLayout>
```
menu_main.xml
```xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_save"
android:title="Save"
android:icon="@android:drawable/ic_menu_save"
app:showAsAction="always"/>
<item
android:id="@+id/action_load"
android:title="Load"
android:icon="@android:drawable/ic_menu_recent_history"
app:showAsAction="always"/>
</menu>
```
此代码示例中,我们使用了 SharedPreferences 来保存文本,并在 onPause、onStop 和 onDestroy 生命周期事件中保存文本。在读取文本时,我们使用了 FileInputStream 和 BufferedReader 来从文件中读取文本。在菜单项点击事件中,我们调用了 saveText 和 loadText 方法以保存和读取文本。
阅读全文