Ho un'attività che normalmente desidero esistere in più attività, in modo che il pulsante [Indietro] ripristini uno stato precedente; tuttavia, voglio anche usare uno SearchView con un'attività esistente, senza spingerne uno nuovo nello stack delle attività (poiché voglio cercare ciò che è attualmente visualizzato). Ecco il mio problema:Come utilizzare un SearchView Android senza singleTop?
- Se ho impostato la modalità di lancio della propria attività a "singleTop", il SearchView lavora con l'attività corrente, ma Context.startActivity non aggiunge nuove attività per lo stack.
- Se imposto la modalità di avvio dell'attività su "standard", startActivity aggiunge nuove attività allo stack, ma SearchView crea anche una nuova attività (vuota), anziché cercare quella esistente.
non riesco a trovare alcun modo rendere SearchView utilizzare bandiere intenti (ad es FLAG_ACTIVITY_SINGLE_TOP. Ho provato ad andare il contrario, impostando la modalità di lancio per "singleTop" aggiungendo poi FLAG_ACTIVITY_NEW_TASK ad ogni intenzione, ma che funzionava solo al momento del lancio da una diversa classe di attività, quando provo a lanciare una nuova istanza di un'attività dalla propria classe, Android non ha rispettato FLAG_ACTIVITY_NEW_TASK e non ha spinto una nuova attività nello stack
Forse c'è qualcosa che posso fare. in Activity.onNewIntent per forzare quindi l'attività a clonare se stesso.
Sono sull'orlo di givin g su SearchView e basta scrivere il mio widget personalizzato, nonostante il fatto che "A partire da Android 3.0, utilizzando il widget SearchView come elemento nella barra delle azioni è il modo preferito per fornire la ricerca nella tua app" (Source) - finora, sembra troppo poco flessibile e non configurabile per essere utile in casi non banali.
Qualcuno ha trovato una soluzione a questo problema?
Dalla mancanza totale di risposte (e basso numero di visualizzazioni), suppongo che questo sia un problema non banale. Esiste un altro possibile aggiramento (oltre a evitare semplicemente SearchView): potrei progettare l'attività SingleTop per mantenere il proprio stato di stato e cambiare stato, quindi intercettare il pulsante Indietro per simulare lo spostamento attraverso lo stack delle attività. Ho una forte avversione, tuttavia, a sostituire le funzionalità del sistema operativo principale con le simulazioni: se questa è l'unica opzione, deciderò semplicemente che Google ha consigliato SearchView prematuramente per l'uso di produzione e creerà il mio componente di azione di ricerca. – Canuck