2013-09-28 2 views
0

Я пытаюсь написать текст в файл, но я не могу заставить его работать.Android - сохранить в текстовый файл

public static void saveState(){ 

     String data = age + "," ; 
     FileOutputStream fos; 
     Context con = getApplicationContext(); 
     try { 
      fos = con.openFileOutput("state", 0); 
      OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fos); 
      outputStreamWriter.write(data); 
      outputStreamWriter.close(); 
     } 
     catch (IOException e) { 
      Log.e("Exception", "File write failed: " + e.toString()); 
     } 


    } 

Я посмотрел вокруг и, кажется, я не могу назвать openFileOutput() с вне контекста, но понятия не имеют «контекст кон = getApplicationContext()» не будет работать, как-им за пределами деятельности. он просто говорит мне, что getapplicationcontext не определен для типа. Может кто-нибудь помочь мне здесь?

ответ

1

Вы должны передать контекст из вызывающей деятельности:

public static void saveState(Context context){ 

    String data = age + "," ; 
    FileOutputStream fos; 

    try { 
     fos = context.openFileOutput("state", 0); 
     OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fos); 
     outputStreamWriter.write(data); 
     outputStreamWriter.close(); 
    } 
    catch (IOException e) { 
     Log.e("Exception", "File write failed: " + e.toString()); 
    } 
} 

Как использовать это из деятельности:

YOUR_UTIL_CLASS.saveState(this); 

Следующая не будет работать:

Context con = getApplicationContext(); 

Причина: getApplicationContext() - это метод, относящийся к ContextWrapper. Класс Activity extends ContextWrapper и, следовательно, имеет к нему доступ. Метод saveState(..), вероятно, находится в служебном классе. getApplicationContext() там не определен.

 Смежные вопросы

  • Нет связанных вопросов^_^