Devo modificare il testo per un intervallo di celle di intestazione nella tabella di dati.
Per ottenere ciò, è necessario recuperare e archiviare gli ID di visualizzazione assegnati a tali celle, in modo che possano essere utilizzati in un secondo momento per identificare tali visualizzazioni di celle.
Tuttavia, quando provo a ottenere un ID per la visualizzazione della cella appena gonfiata, restituisce sempre -1.android view.getId() restituisce -1
Ecco il mio codice di esempio:
@Override
public View getView(final int row, final int column, View converView, ViewGroup parent) {
if (converView == null) {
converView = inflater.inflate(getLayoutResource(row, column), parent, false);
if (row == -1){
int viewId = converView.getId();
setHeaderId(viewId, column+1);
}
}
...
}
Il converView.getId() nel codice qui sopra restituisce -1, nonostante il fatto che la vista id è già stato assegnato ed è visibile durante il debug del codice. Ad esempio, durante il debug posso vedere quanto segue: converView = LinearLayout (id = 830042440680)
Qualche idea del motivo per cui ricevo -1 (= NO_ID) nel codice precedente?
Questa è una grande risposta e mi ha aiutato moltissimo. Grazie! Non mi sono reso conto che l'ID della vista interna assegnato da xml inflater non è accessibile e deve essere nuovamente assegnato manualmente. Ora ho completato con successo l'attività di aggiornamento dei titoli delle celle di intestazione in fase di runtime. –
Vedere la soluzione completa all'indirizzo: [http://stackoverflow.com/questions/15065467] –
Sono felice di aiutarti) –