android - 保存文件的更改?

标签 android file savechanges

我的 SD 卡上有一个文件。当我正常打开并用“officesuite”更改时,我可以保存更改。当我如下在我的应用程序中打开它时,“officesuite”会显示它但它无法保存更改并且绝不会返回到我的 Activity 。有什么想法吗?
这是我的代码:

import java.io.File;
import java.net.URI;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.webkit.MimeTypeMap;

public class OfficesuiteSaveAsActivity extends Activity {
    private String fileDir;
    private File file;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedlnstanceState) {
        super.onCreate(savedlnstanceState);
        setContentView(R.layout.main);
        String sdCardDir = Environment.getExternalStorageDirectory()
                .getAbsolutePath();
        String fileName = "TestofficeSuite.docx";
        fileDir = sdCardDir + File.separator + fileName;
        file = new File(fileDir);
        displayFile(file.toURI());
    }

    public void displayFile(URI uriString) {
        Uri data = Uri.parse(uriString.toString());
        Intent newlntent1 = new Intent();
        newlntent1.setAction(Intent.ACTION_VIEW);
        MimeTypeMap mtm = MimeTypeMap.getSingleton();
        newlntent1.setDataAndType(data, mtm.getMimeTypeFromExtension("docx"));
        startActivity(newlntent1);
    }
}

最佳答案

我检查 sdcard 中文件的“Uri.parse(file.toURI().toString())”和“Uri.fromFile()”的值: “Uri.parse(file.toURI().toString())”以“file:/mnt/...”开头,“Uri.fromFile()”以“file:///mnt/...”开头!所以我更改了代码并且它工作正常:

public class OfficesuiteSaveAsActivity extends Activity {
    private String fileDir;
    private File file;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedlnstanceState) {
        super.onCreate(savedlnstanceState);
        setContentView(R.layout.main);
        String sdCardDir = Environment.getExternalStorageDirectory()
                .getAbsolutePath();
        String fileName = "TestofficeSuite.docx";
        fileDir = sdCardDir + File.separator + fileName;
        file = new File(fileDir);
        displayFile(file);
    }

    public void displayFile(File file) {
        Uri data = Uri.fromFile(file);
        Intent newlntent1 = new Intent();
        newlntent1.setAction(Intent.ACTION_VIEW);
        MimeTypeMap mtm = MimeTypeMap.getSingleton();
        newlntent1.setDataAndType(data, mtm.getMimeTypeFromExtension("docx"));
        startActivity(newlntent1);
    }
}

关于android - 保存文件的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8686751/

相关文章:

android - 如何获取来自gsm网络的数据

android - iOS,以非故事模式启动邮件客户端。如何?

android - 如何在 Android 中按文件名或日期按升序或降序对文件或文件夹进行排序?

javascript - 将 StorageFile 端到端读入字符串的最简单方法?

java - 如何让用户以ajax成功方法下载文件?

c# - (DbContext) SaveChanges() 如何用于大量记录? - 寻求和找到最佳性能的解决方案

c# - EntityFramework 在保存更改之前显示实体

.net - 无法保存 Entity Framework 继承的类型

android - 我可以在基础类和 child 类注册 Otto 巴士吗?

Android - 自定义列表(覆盖列表中某些位置的元素)