您好,我在Android Studio上制作应用时遇到了问题。我希望用户输入一些文本,然后单击保存按钮,该按钮应将文本文件保存在手机上。我有以下代码运行没有任何错误,但它没有做任何事情。我找不到它应该保存的文件。
public class TakeNotes extends Activity implements View.OnClickListener {
String content = "";
File file;
FileOutputStream outputStream;
TextView tv;
Button btnSave;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.take_notes);
tv = (TextView) findViewById(R.id.txtInput);
btnSave = (Button) findViewById(R.id.btnSave);
btnSave.setOnClickListener(this);
}
public void onClick(View v) {
if (v == findViewById(R.id.btnSave)) {
try {
file = new File(Environment.getExternalStorageDirectory(), "test.txt");
outputStream = new FileOutputStream(file);
outputStream.write(content.getBytes());
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
答案 0 :(得分:0)
您应该在AndroidManifest
中包含权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
答案 1 :(得分:0)
您需要在Android 6.0(API级别23)及更高版本中添加运行时权限
这是WRITE_EXTERNAL_STORAGE
if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
Log.d(TAG,"Permission is granted");
return true;
}
请求像这样的其他许可
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_CODE);
以下是official文档