AdaptiveTableLayout
AdaptiveTableLayout copied to clipboard
Table not updating with multiple textviews in item_card
Hello, I've wanted to display a table with 4 TextViews per item, but the table isn't getting updated when I use my modified version of EditItemDialog(to support the 4 TVs I mentioned above). The data in the csv gets updated immediately, also if I switch to another fragment and back to the table-fragment, the data's displayed correctly!
How can I fix that?
Code handling EditItemDialog response(GH is bugging...):
`
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == EditItemDialog.REQUEST_CODE_EDIT_ITEM && resultCode == Activity.RESULT_OK && data != null) { int columnIndex = data.getIntExtra(EditItemDialog.EXTRA_COLUMN_NUMBER, 0); int rowIndex = data.getIntExtra(EditItemDialog.EXTRA_ROW_NUMBER, 0); String s = data.getStringExtra(EditItemDialog.EXTRA_SUBJECT); String t = data.getStringExtra(EditItemDialog.EXTRA_TEACHER); String r = data.getStringExtra(EditItemDialog.EXTRA_ROOM);
// My attempts to update the layout:
mCsvFileDataSource.updateItem(rowIndex, columnIndex,
CsvFileDataSourceImpl.prepItem(s, t, r));
mTableAdapter.notifyItemChanged(rowIndex, columnIndex);
mTableLayout.notifyItemChanged(rowIndex, columnIndex);
mCsvFileDataSource.applyChanges(getLoaderManager(),
mTableLayout.getLinkedAdapterRowsModifications(),
mTableLayout.getLinkedAdapterColumnsModifications(),
mTableLayout.isSolidRowHeader(),
ScheduleFragment.this);
mTableLayout.setVisibility(View.GONE);
mTableLayout.setVisibility(View.VISIBLE);
//mTableLayout.invalidate();
onFileUpdated(StorageUtils.getScheduleFile(getActivity()).getAbsolutePath(), true); // .getScheduleFile() returns File object
}
}
`
`
public static String prepItem(String s, String t, String r) {
return s + ";" + t + ";" + r;
}
//...
public String getItemData(int rowIndex, int columnIndex, int position) { // helper method for schedule, splits item and returns data at position's index
try {
List<String> rowList = getRow(rowIndex);
return (rowList == null ? "" : rowList.get(columnIndex)).split(";")[position];
} catch (Exception e) {
Log.e(TAG, "get rowIndex=" + rowIndex + "; colIndex=" + columnIndex + "; position:" + position + "\ncache = " +
mItemsCache.toString(), e);
return null;
}
}
`
Best regards, Felipe
PS: Except for above issue, it works like a charm!
I still have this issue, how do you work out with this problem?
Possible duplicate of #36. If so is fixed on pull request #41