2011-12-31 2 views
1

У меня есть файл на моей SD-карте. Когда я обычно открываю и меняю его с помощью «officeuite», я могу сохранить изменения. Когда я открываю его в своем приложении, как показано ниже, «officeuite» отображает его, но он не может сохранять изменения и никоим образом не возвращается к моей деятельности. Есть идея?
Вот мой код:сохранить изменения файла?

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); с помощью newlntent1.setAction (Intent.ACTION_EDIT), но я вижу это сообщение: «Извините! Приложение ... остановилось неуверенно. Попробуйте еще раз». – hasanghaforian

ответ

1

проверить значение «Uri.parse (. File.toURI() ToString())» и «Uri.fromFile()» файла в SDCard: « Uri.parse (file.toURI(). ToString()) «начинается как« файл:/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); 
    } 
}