android记事本代码
时间: 2023-12-05 21:04:55 浏览: 34
以下是一个简单的 Android 记事本的代码示例:
1. 新建一个空白的 Android 项目,取名为 NotePad。
2. 在 res/layout 文件夹下新建一个名为 activity_main.xml 的布局文件,该文件用于显示记事本的主界面。
activity_main.xml 代码如下:
```
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="top|left"
android:inputType="textMultiLine"
android:scrollbars="vertical"
android:textSize="18sp" />
</RelativeLayout>
```
3. 在 MainActivity.java 文件中定义一个 EditText 变量,用于显示文本内容。
```
public class MainActivity extends AppCompatActivity {
private EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.editText);
}
}
```
4. 在 AndroidManifest.xml 文件中添加以下权限:
```
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
```
5. 在 MainActivity.java 文件中添加以下代码,用于保存文本内容:
```
private void saveFile() {
String text = editText.getText().toString();
try {
File file = new File(Environment.getExternalStorageDirectory(), "note.txt");
FileOutputStream fos = new FileOutputStream(file);
fos.write(text.getBytes());
fos.close();
Toast.makeText(this, "Saved to " + file.getAbsolutePath(), Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
}
}
```
6. 在 MainActivity.java 文件中添加以下代码,用于加载文本内容:
```
private void loadFile() {
try {
File file = new File(Environment.getExternalStorageDirectory(), "note.txt");
FileInputStream fis = new FileInputStream(file);
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
String text = new String(buffer);
editText.setText(text);
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
```
7. 在 MainActivity.java 文件中添加以下代码,用于显示保存和加载按钮:
```
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_save) {
saveFile();
return true;
} else if (id == R.id.action_load) {
loadFile();
return true;
}
return super.onOptionsItemSelected(item);
}
```
8. 在 res/menu 文件夹下新建一个名为 menu_main.xml 的菜单文件,该文件用于定义保存和加载菜单项。
menu_main.xml 代码如下:
```
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/action_save"
android:title="Save"
android:icon="@drawable/ic_save"
android:showAsAction="ifRoom" />
<item
android:id="@+id/action_load"
android:title="Load"
android:icon="@drawable/ic_load"
android:showAsAction="ifRoom" />
</menu>
```
9. 运行程序,点击保存按钮可以将文本内容保存到 SD 卡上的 note.txt 文件中,点击加载按钮可以从 note.txt 文件中加载文本内容并显示在 EditText 中。
注意:在 Android 6.0 及以上版本需要动态获取 WRITE_EXTERNAL_STORAGE 权限。