2

*変数の初期化

String serfilename;

List<HashMap<String, String>> painItems = new ArrayList<HashMap<String, String>>();

作成方法について

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.addscreen);
//getPainItems from the saved file
if(loadListFromFile((ArrayList<HashMap<String, String>>) painItems) != 
      null)
    painItems = loadListFromFile((ArrayList<HashMap<String, String>>) 
        painItems);
}

ファイルメソッドからリストをロード

private ArrayList<HashMap<String, String>> loadListFromFile(

    ArrayList<HashMap<String, String>> masterlistrev) {
try {

    FileInputStream fis = openFileInput(serfilename);
    ObjectInputStream ois = new ObjectInputStream(fis);
    masterlistrev = (ArrayList<HashMap<String, String>>) ois.readObject();
 } catch (Exception e) {
    e.printStackTrace();
 }
return masterlistrev;
}

WRITE LIST TO FILE メソッド

private void writeListToFile(ArrayList<HashMap<String, String>> masterlistrev){

    File myfile = getFileStreamPath(serfilename);
    try {
        if(myfile.exists() || myfile.createNewFile()){
            FileOutputStream fos = openFileOutput(serfilename, MODE_PRIVATE);
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeObject(masterlistrev);
     }
 } catch (Exception e) {
     e.printStackTrace();
 }

 }

ONSTOP() メソッド

 protected void onStop(){
    super.onStop();
    writeListToFile((ArrayList<HashMap<String, String>>) painItems);
}

File myfile = getFileStreamPath(serfilename); で NULL ポインター例外が発生します。これを修正するにはどうすればよいですか..これを行うためのより良い方法はありますか..?

4

1 に答える 1

1

貼り付けたものに基づいて、パスに設定されてserfilenameいるnullことも、設定されていないこともあります。

そうは言っても、それがなくても、

File myfile = getFileStreamPath(serfilename);

NullPointerExceptionあなたの(null)入力のために をスローすると予想されます。

自分を納得させてください。試す:

if(null == serfilename)
    throw new RuntimeException ("serfilename is null!");

File myfile = getFileStreamPath(serfilename);
于 2011-07-19T03:22:31.507 に答える