I have Fragment1 and Fragment2. Fragment1 is a form of EditTexts which saves its data into a text file. I want the user to be able to swipe back and forth between Fragment1 and Fragment2, where each time they swipe, the data from Fragment1 is saved onto a file.
So far, I've implemented each form as a new fragment using ViewPager and used an addOnPageChangeListener
to save the file each time the user swipes. This works, but the user-input data is completely empty.
This is my current code for where the user swipes to save:
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
//Saves the data into an array of strings (this is a small snippet)
Details = new String[2];
//This line saves!
Details[0] = "Details:\n\n";
//This line contains only "Detail1" in the file
Details[1] = "Detail1: " + Detail1.getText().toString().trim() + "\n";
saveToTxtFile(Details);
}
@Override
public void onPageScrollStateChanged(int state) {
}
And my code for 'saveToTxtFile':
private void saveToTxtFile(String[] Details) {
if (Details != null) {
try {
File myDir = new File(getFilesDir().getAbsolutePath());
FileWriter fw = new FileWriter(myDir + "/" + fileName(), false);
for (String Detail : Details) {
fw.write(Detail);
}
fw.close();
Toast.makeText(this, "Saved to " + getFilesDir() + "/" + fileName(), Toast.LENGTH_LONG).show();
} catch (IOException e) {
e.printStackTrace();
}
}
}
I'm pretty new to Android Studio and Java, so would appreciate some beginner-friendly tips.