2013-02-27 12 views
6

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?

risposta

9

Dalla documentazione LayoutInflater Android:

gonfiare un nuova visione della gerarchia dalla risorsa XML specificato.

Così, quando si chiama

converView = inflater.inflate(getLayoutResource(row, column), parent, false); 

converView è solo creare per il layout gonfiatore e non hanno alcun ID. È necessario impostare ID manualmente come questo

converView.setId(YOUR_GENERATED_ID); 
+1

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. –

+0

Vedere la soluzione completa all'indirizzo: [http://stackoverflow.com/questions/15065467] –

+0

Sono felice di aiutarti) –

Problemi correlati