2013-07-27 5 views
5

Sono nuovo nello sviluppo di Android.Android: Cambia dinamicamente il titolo dell'attività in testo dell'elenco selezionato Elemento

Ho creato una semplice app di dettaglio principale che inizia con un semplice elenco di argomenti a scorrimento verticale.

Quando l'utente seleziona un argomento, viene visualizzata una schermata dei dettagli, che sostituisce la prima schermata, con un elenco di dettagli relativi all'argomento selezionato.

Voglio il titolo per la schermata dei dettagli per mostrare l'argomento che l'utente ha selezionato nella prima pagina, ma non sono stato in grado di risolvere il problema dopo aver lavorato per quasi una settimana.

Tutto ciò che devo sapere è, può essere fatto? Non cerco qualcuno che possa risolvere questo per me, ma forse un suggerimento o un link a un tutorial che mostri come farlo.

Nota: posterò un disegno di ciò che voglio fare, ma sono nuovo qui e non ho ancora 10 reputazione.

Grazie, SonCoder

risposta

5

Non esattamente quello che vuoi, ma in entrambi i casi .. -Hai una lista. Ogni vista (i dati) nella listview dovrebbe essere rappresentata da un modello. (Aka una classe separata contenente le informazioni specifiche che si vuole rappresentare per ogni listitem.

-Scrivere un adattatore elenco personalizzato (si estendono da adattatore di base). http://www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/ Nel metodo GetView di questa classe si carica il campo String del modello che si desidera nella vista testo

-Accertarsi di utilizzare il modello di viewholder nell'adattatore sopra.Ho notato che l'esempio non ne usa uno.Questo accelera lo scorrimento nell'elenco perché ci sono molte meno chiamate per trovareViewById

- Nell'attività elenco impostare un listener onClick View.Ciò dovrebbe creare un intento (per l'avvio di un'attività) o una transazione di frammento (per i frammenti). Invia l'istanza dell'intero modello (otterrà da

parent.getAdapter().getItem(position); 

nel metodo a clic) nell'attività di dettaglio.

-se si desidera impostare un titolo di testo basta ottenere la vista testo e impostarlo dal modello. Sarà lo stesso archiviato che è stato gonfiato nel metodo getView dell'adattatore.

-se si vuole impostare il Titolo nel set ActionBar:

this.getActionBar().setTitle(title) 
+0

Come con la risposta di cui sopra, dovrà ricercare questo approccio e come implementarlo. Ancora una volta, sono molto nuovo per Android ... e programmazione in generale. Apprezzo il suggerimento. – dmiannay

+0

Grazie. Non l'ho visto un paio di settimane fa quando stavo cercando di risolvere il problema. Questa semplice linea di codice "this.getActionBar(). SetTitle (titolo)" ha fatto il trucco e funziona benissimo! Grazie! – dmiannay

1

Questo è semplice. È sufficiente inviare ulteriori dati nel intent che avvia activity e quindi nell'attività onCreate leggere i dati e quindi utilizzare il metodo setTitle(myString) dall'attività.

setTitle(String title) può essere chiamato da qualsiasi luogo utilizzando l'attività a proposito.

Quindi, il tuo nel tuo listadapter, quindi imposta un listener sulla tua vista giusto? Un semplice onClickListener sull'intera vista "root" va bene.

Nel listener dici qualcosa nei modi di questo:

Intent intent = new Intent(myActivity, MySubActivity.class); 
intent.putExtra(key, titleName); 
myActivity.startActivity(intent); 

Nota che il riferimento di attività deve essere impostato nel costruttore della scheda e che la stringa "chiave" è qualcosa che si ottiene dal vostro strings.xml. Non duplicare questi in codice poiché se ne modifichi uno e ti dimentichi di cambiare gli altri potresti ottenere alcuni NPE stravaganti.

Continua a del vostro MySubActivity onCreate()

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    Intent intent = getIntent(); 
    String key = getString(R.string.my_title_key); 
    String title = intent.getString(key); 
    setTitle(title); 
} 

NOTA: Non sono sicuro di tutti i nomi dei metodi sono corretti e quali, ma qualcosa di simile.

+0

Suggerimento sembra molto semplice, ma dovrò ricerca come passare il "tema selezionato" stringa nel intenti. Mi hai dato qualcosa su cui concentrarti. – dmiannay

+0

Controlla la modifica come 1 min. –

+0

Grazie @Johan S. I tuoi consigli sono stati di grande aiuto! Ancora tanto da imparare, ma amare il viaggio. – dmiannay

Problemi correlati