Solution was simple. I've added a simple loop in my two save methods. This is to check each row for save data and load data. The problem I had before was because I had multiple rows with one xml layout. Therefor you need some extra coding to know each editText. You can see my solution below:
public void restoreSavedData() {
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
TableLayout table = (TableLayout)MainActivity.this.findViewById(R.id.mainTable);
for(int n = 0, s = table.getChildCount(); n < s; ++n) {
TableRow row = (TableRow)table.getChildAt(n);
EditText text = (EditText)row.findViewById(R.id.editText);
int saved = settings.getInt(String.valueOf(n), 0);
try {
text.setText(String.valueOf(saved));
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void newSavedData() {
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
TableLayout table = (TableLayout)MainActivity.this.findViewById(R.id.mainTable);
int toSave = 0;
for(int n = 0, s = table.getChildCount(); n < s; ++n) {
TableRow row = (TableRow)table.getChildAt(n);
EditText text = (EditText)row.findViewById(R.id.editText);
if(!text.getText().toString().equals(""))
{
toSave = Integer.valueOf(text.getText().toString());
editor.putInt(String.valueOf(n), toSave);
// Commit the edits!
editor.commit();
}
}
}
Now the data of each row is saved and loaded when needed.