es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo mostrar una lista guardada en las preferencias compartidas en otra lista en otra página (Página de Favoritos)?

Hola comunidad, soy nuevo en el mundo de Flutter y el desarrollo de aplicaciones móviles, y estoy luchando con cómo mostrar una lista guardada en preferencias compartidas en otra lista en otra página (página de Favoritos).

El botón de favoritos para guardar la lista en Shared Preferences:


Padding( padding: const EdgeInsets.fromLTRB(0, 0, 0, 0), child: FlatButton( child: Icon( Icons.favorite, color: Colors.green, size: 25, ), onPressed: () async { SharedPreferences prefs = await SharedPreferences.getInstance(); Article savedArticle = Article( source: widget.list[i].source, author: widget.list[i].author, title: widget.list[i].title, description: widget.list[i].description, url: widget.list[i].url, urlToImage: widget.list[i].urlToImage, publishedAt: widget.list[i].publishedAt, content: widget.list[i].content); String json = jsonEncode(savedArticle); // print('saved... $json'); list.add(json); prefs.setStringList('News', list); print("shared..." + prefs.getStringList('News').length.toString()); }, ), ),

Esto es una captura de pantalla de la lista guardada en preferencias compartidas que se muestra en la consola:

Enlace a la captura de pantalla

Esto es una captura de pantalla de la lista con el botón de favoritos desde donde guardé los artículos en SharedPref al hacer clic en el botón de favoritos:

Enlace a la captura de pantalla

Mi objetivo es mostrar la lista guardada en las preferencias compartidas en otra página (página de artículos favoritos) en una lista pero sin el botón de favoritos. ¿Alguien podría ayudarme, POR FAVOR?
Gracias.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para mostrar la lista guardada en Shared Preferences en otra página sin el botón de favoritos, debes seguir los siguientes pasos:

    1. Recupera la lista guardada de Shared Preferences en el método initState de la página de artículos favoritos:
      List<string> savedList = [];
      
      initState() {
       super.initState();
       getSavedList();
      }
      
      getSavedList() async {
       SharedPreferences prefs = await SharedPreferences.getInstance();
      
       setState(() {
         savedList = prefs.getStringList('News');
       });
      }
      
    2. Muestra la lista guardada utilizando ListView.builder en el método build de la página de artículos favoritos:
      ListView.builder(
       itemCount: savedList.length,
       itemBuilder: (BuildContext context, int index) {
         Article savedArticle = Article.fromJson(jsonDecode(savedList[index]));
         return ListTile(
           leading: Image.network(
             savedArticle.urlToImage,
             height: 60,
             width: 80,
             fit: BoxFit.cover,
           ),
           title: Text(savedArticle.title),
           subtitle: Text(savedArticle.publishedAt),
           onTap: () {
             // Haz algo cuando se toque el artículo
           },
         );
       },
      )
      

    Este código mostrará la lista guardada en una vista de lista sin el botón de favoritos. También puedes personalizar el diseño y agregar más funcionalidades según tus requerimientos.

Comments are closed.