2010-07-11 10 views
6

Per i principianti, sono uno sviluppatore di C++/Qt che entra nello sviluppo di Android/Java, quindi per favore non presumere di sapere nulla. :) Quindi, ho un'applicazione con TextView contenuta in ScrollView. Il testo contenuto in TextView è il risultato di una query Web dall'applicazione del mio server web. A seconda della query, il testo può essere piuttosto lungo. Voglio implementare una funzione di ricerca sul testo in cui l'utente inserisce una stringa di testo da cercare, e se viene trovata la stringa di testo, ScrollView scorrerà la TextView per garantire che la sottostringa inserita sia visibile, e voglio il testo evidenziato. Penso di sapere come evidenziare la sottostringa di testo, so come dire a ScrollView per scorrere fino a un numero di linea specifico nel TextView, ma per la vita di me, non riesco a capire come scoprire quale numero di riga scorri fino a garantire che la mia sottostringa sia visibile. Vale a dire, voglio interrogare la vista del testo per darmi il numero di riga a cui la sottostringa si verifica per la prima volta. Alla fine, voglio anche implementare una ricerca successiva che vada alla prossima occorrenza della sottostringa. Un po 'come la funzione Trova in Firefox. Qualsiasi assistenza è molto apprezzata. Grazie in anticipo.Scorrimento di TextView in ScrollView fino a una sottostringa di testo specifica

risposta

8

È necessario trovare manualmente la posizione della sottostringa nel testo, ad es. con String.indexOf(). Una volta riconosciuta tale posizione, è possibile cercare la riga corretta in TextView utilizzando la funzione:

int offset=myString.indexOf("search string"); 
int line = myTextView.getLayout().getLineForOffset(offset); 
Problemi correlati