2017-03-28 21 views
0

FragmentStatePagerAdapterを拡張する非アクティビティクラスのファイルにStringを書きたいとします。FragmentStatePagerAdapterクラスのファイルに文字列を書き込む方法

助けが必要ですか?

Context ctx; 

public void saveFile() { 
    String xmlString = ""; 
    for (int i=0; i<mNumOfTabs; i++) { 
     xmlString += days[i].toString() + "\n"; 
    } 

    try{ 
     FileOutputStream fOut = ctx.openFileOutput("config.txt", MODE_WORLD_READABLE); 

     OutputStreamWriter osw = new OutputStreamWriter(fOut); 

     osw.write(xmlString); 

     osw.flush(); 

     osw.close(); 
    } 

    catch (IOException ioe) 
    { 
     ioe.printStackTrace(); 
    } 

} 

そして、ここではlogcatです:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.FileOutputStream android.content.Context.openFileOutput(java.lang.String, int)' on a null object reference 
                     at com.skolarac.skolarac.PageAdapter.saveFile(PageAdapter.java:78) 
                     at com.skolarac.skolarac.Day.onActivityResult(Day.java:165) 
                     at android.support.v4.app.FragmentActivity.onActivityResult(FragmentActivity.java:164) 
                     at android.app.Activity.dispatchActivityResult(Activity.java:6932) 
                     at android.app.ActivityThread.deliverResults(ActivityThread.java:4085) 
                     at android.app.ActivityThread.handleSendResult(ActivityThread.java:4132)  
                     at android.app.ActivityThread.-wrap20(ActivityThread.java)  
                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1533)  
                     at android.os.Handler.dispatchMessage(Handler.java:102)  
                     at android.os.Looper.loop(Looper.java:154)  
                     at android.app.ActivityThread.main(ActivityThread.java:6119)  
                     at java.lang.reflect.Method.invoke(Native Method)  
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)  
                     com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)  

答えて

0

問題は、あなたのコンテキストがNULLであることである私は、ファイルを文字列をファイルに書きたい

私の方法は、このようになります。この答えは私の問題を解決し

public class MyClass extends FragmentStatePagerAdapter { 
    Context ctx; 
    public MyClass(Context context) { ctx = context;} 

    ... 
} 
+0

@Dooronヤコブレフ-Golani Thxを:それを解決するために

あなたのクラスのコンストラクタにコンテキストを追加することができます – smiljka

関連する問題