J'essaie de créer une application Android simple qui enregistre un texte à partir d'un formulaire EditText et le stocke dans la mémoire interne. Tout semble fonctionner correctement (le message "Saved" apparaît) sauf lorsque je quitte l'activité et que je la redémarre, le texte sauvegardé à partir du fichier ne se charge pas du tout. Est-ce que j'ai râté quelque chose?Fichier non enregistré dans Android
public class ModifyInfo extends Activity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.edit);
Bundle extras = getIntent().getExtras();
if(extras != null){
int dayNum = extras.getInt("day");
String dayName = "";
switch(dayNum){
case 1:
dayName = this.getString(R.string.dayMon);
break;
case 2:
dayName = this.getString(R.string.dayTue);
break;
case 3:
dayName = this.getString(R.string.dayWed);
break;
case 4:
dayName = this.getString(R.string.dayThu);
break;
case 5:
dayName = this.getString(R.string.dayFri);
break;
case 6:
dayName = this.getString(R.string.daySat);
break;
default:
dayName = this.getString(R.string.daySun);
break;
}
final TextView dayText = (TextView) findViewById(R.id.dayName);
final TextView editData = (TextView) findViewById(R.id.editData);
final Button save = (Button) findViewById(R.id.buttonSave);
final Button clear = (Button) findViewById(R.id.buttonClear);
final String Day = dayName;
dayText.setText(dayName);
clear.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
editData.setText("");
}
});
save.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String FILEOUTPUT = Day + ".txt";
try {
String string = editData.getText().toString();
FileOutputStream fos = openFileOutput(FILEOUTPUT, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
Toast.makeText(ModifyInfo.this, "Saved", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
Toast.makeText(ModifyInfo.this, "Save error", Toast.LENGTH_SHORT).show();
}
}
});
File FILEINPUT = new File(Day + ".txt");
try {
BufferedReader bfr = new BufferedReader(new FileReader(FILEINPUT));
String line;
while ((line = bfr.readLine()) != null)
{
editData.setText(line);
}
bfr.close();
} catch (Exception e) {
editData.setText("");
}
}
}
}
Je voudrais améliorer la gestion des exceptions. En général, ce n'est pas une bonne habitude d'attraper une instance de classe Exception. Vous devriez mieux enregistrer les exceptions afin que vous sachiez quand elles sont lancées. – gregory561