0
我试图将列表中的元素(由用户通过对话框添加)保存到文件中,以便在重新打开时保持不变。由于某种原因,当我第二次向它添加元素时,它会抛出nullPointerException(第一次很好地工作)。这是我如何保存:Android在内部存储器中保存文件无法正常工作
public void onPause(){
super.onPause();
try {
OutputStreamWriter out = new OutputStreamWriter(openFileOutput(salvare, 0));
for(int i=0; i<lista.orase.size(); i++){
out.write(lista.getItem(i)+"\n"); //ia fiecare element al listei si il scrie in fisier urmat de endline;
}
out.close();
System.out.println("ON PAUSE!");
} catch (Throwable t){
}
}
而且我这是怎么获取的onCreate:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lista=new ListaOrase(this);
buton=(Button)findViewById(R.id.buton);
setListAdapter(lista);
try {
InputStream in= openFileInput(salvare);
if(in!=null){
InputStreamReader tmp = new InputStreamReader(in);
BufferedReader reader = new BufferedReader(tmp);
String str;
while(reader.readLine()!=null){
str=reader.readLine();
lista.add(str);
}
in.close();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
异常是由该功能(其中添加保存功能之前精美的了)抛出。它从对话框中获取意图并将该元素添加到列表中。
public void onActivityResult (int requestCode, int responseCode, Intent data){
if(responseCode==1){
String s=data.getStringExtra("oras");
lista.add(s);
setListAdapter(lista);
}
}
他们之间有什么可能的联系,我该如何解决?
在onCreate方法中,您需要将setListAdapter(lista);在用文件中的str填充lista之后。还有一件事需要注意的是,在onActivityResult方法中,在添加到lista之前,检查s是否为null。 –
你解决了我的问题! :) – FloIancu