使用android写一个有读写按钮的app,按下读入的时候读入手动打入的文本,按下写出的时候把读入的文本显示在下面
时间: 2024-02-12 14:04:26 浏览: 16
好的,以下是实现这个功能的基本步骤:
1. 创建一个新的 Android 项目,并在布局文件中添加两个按钮、一个文本框和一个文本视图。
2. 在 MainActivity.java 文件中,找到布局中的读取和写入按钮,并将它们与相应的操作关联起来。在读取按钮的点击事件中,使用 getText() 方法获取文本框中的文本,并将其显示在文本视图中。在写入按钮的点击事件中,将读取的文本写入文件中。
3. 在 AndroidManifest.xml 文件中添加权限以允许应用程序读写文件。例如,添加以下代码:
```
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
```
下面是一个简单的实现示例:
MainActivity.java
```
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private EditText mEditText;
private TextView mTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditText = findViewById(R.id.edit_text);
mTextView = findViewById(R.id.text_view);
}
public void readText(View view) {
String text = mEditText.getText().toString();
if (text.isEmpty()) {
Toast.makeText(this, "请输入文本", Toast.LENGTH_SHORT).show();
return;
}
mTextView.setText(text);
}
public void writeText(View view) {
String text = mTextView.getText().toString();
if (text.isEmpty()) {
Toast.makeText(this, "请先读取文本", Toast.LENGTH_SHORT).show();
return;
}
try {
// 获取外部存储目录
File file = new File(Environment.getExternalStorageDirectory(), "example.txt");
FileWriter writer = new FileWriter(file);
writer.write(text);
writer.close();
Toast.makeText(this, "写入成功", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(this, "写入失败", Toast.LENGTH_SHORT).show();
}
}
public void readFromFile(View view) {
try {
// 获取外部存储目录
File file = new File(Environment.getExternalStorageDirectory(), "example.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
StringBuilder builder = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
builder.append(line);
}
reader.close();
mTextView.setText(builder.toString());
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(this, "读取失败", Toast.LENGTH_SHORT).show();
}
}
}
```
activity_main.xml
```
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入文本"/>
<Button
android:id="@+id/read_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="读取"
android:onClick="readText"/>
<Button
android:id="@+id/write_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="写入"
android:onClick="writeText"/>
<Button
android:id="@+id/read_file_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="从文件中读取"
android:onClick="readFromFile"/>
<TextView
android:id="@+id/text_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="top|start"
android:scrollbars="vertical"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"/>
</LinearLayout>
```
请注意,这只是一个简单的实现示例,您需要根据自己的实际需求进行修改和改进。此外,由于 Android 10 及更高版本对文件访问权限有所限制,如果您的应用需要在 Android 10 及更高版本上运行,请考虑使用 SAF 或 FileProvider 等更安全的方法来访问文件。