0
私はリストの要素をダイアログボックスでユーザーに追加してファイルに保存しようとしています。何らかの理由で、2回目に要素を追加すると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に書き込んだ後。もう1つ注意すべき点は、onActivityResultメソッドでは、listaに追加する前にsがnullかどうかであるということです。 –
あなたは私の問題を解決しました! :) – FloIancu