Cleveroad / Cleveroad/AdaptiveTableLayout

Table not updating with multiple textviews in item_card

Ouverte
#30 2 commentaires 1 réaction 0 personnes assignées Voir sur GitHub
bug
Langage dominant
Java
Étoiles
1.9k
Forks
238
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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 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!

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par suivre onActivityResult dans le fragment Schedule, y compris les appels à mTableAdapter, mTableLayout et onFileUpdated, puis examinez comment getItemData répartit la valeur CSV mise à jour entre les quatre TextViews. Le travail est terminé lorsqu’un élément modifié actualise immédiatement tous les TextViews affichés sans changer de fragment, tandis que les données CSV restent à jour.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
android, java
Domaine
mobile
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.