2011-12-31 131 views
1

我在我的SD卡上有一个文件。当我通常打开并用“办公软件”进行更改时,我可以保存更改。当我在应用程序中打开它时,“officesuite”会显示它,但它不能保存更改,绝不会回到我的活动中。有什么想法吗?
这里是我的代码:保存文件的更改?

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); 
    } 
} 
+0

我想我会替换newlntent1.setAction(Intent.ACTION_VIEW); with newlntent1.setAction(Intent.ACTION_EDIT);但是我看到以下消息:“对不起!应用程序....意外停止了,请再试一次。” – hasanghaforian 2011-12-31 10:53:15

回答

1

我检查的价值“Uri.parse(file.toURI()的toString())”和“Uri.fromFile()”中的SD卡文件: “ 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); 
    } 
}