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 un mensaje de alerta cuando se cargan los datos y cerrarlo automáticamente cuando los datos se hayan cargado – Xamarin.

Quiero mostrar una alerta de mensaje cuando los datos se estén cargando y cerrar automáticamente este mensaje cuando los datos se hayan cargado, porque tengo demasiados datos para mostrar con este código:

private async Task GetAPI()
{
    var client = new HttpClient();
    var request = new HttpRequestMessage
    {
        Method = HttpMethod.Get,
        RequestUri = new Uri("https://crypto-news-live.p.rapidapi.com/news/coindesk"),
        Headers =
        {
            { "x-rapidapi-host", "crypto-news-live.p.rapidapi.com" },
            { "x-rapidapi-key", "51569aba99mshf9e839fcfce791bp16c0dbjsn9ced6dba7472" },
        },
    };
    using (var response = await client.SendAsync(request))
    {
        var news = new News();
        response.EnsureSuccessStatusCode();
        var body = await response.Content.ReadAsStringAsync();
        var newsBody = JsonConvert.DeserializeObject<><newsbody>>(body);
        news.CryptoNews = newsBody;
        lstNews.ItemsSource = newsBody;
    }
}

Hasta que el ListView se llene de datos a través del simulador, espere entre 5 y 7 segundos.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para lograr esto, puedes utilizar un ActivityIndicator para indicar que los datos se están cargando y luego ocultarlo cuando los datos se hayan cargado.

    Primero, agrega un control ActivityIndicator a tu archivo XAML y establece la propiedad IsVisible en false:

    <activityindicator x:name="loadingIndicator" isvisible="false" isrunning="true"></activityindicator>
    

    Luego, modifica tu método GetAPI para mostrar el indicador de carga antes de realizar la solicitud HTTP y ocultarlo después de que los datos se hayan cargado:

    private async Task GetAPI()
    {
        // Mostrar indicador de carga
        loadingIndicator.IsVisible = true;
    
        var client = new HttpClient();
        var request = new HttpRequestMessage
        {
            Method = HttpMethod.Get,
            RequestUri = new Uri("https://crypto-news-live.p.rapidapi.com/news/coindesk"),
            Headers =
            {
                { "x-rapidapi-host", "crypto-news-live.p.rapidapi.com" },
                { "x-rapidapi-key", "51569aba99mshf9e839fcfce791bp16c0dbjsn9ced6dba7472" },
            },
        };
        using (var response = await client.SendAsync(request))
        {
            var news = new News();
            response.EnsureSuccessStatusCode();
            var body = await response.Content.ReadAsStringAsync();
            var newsBody = JsonConvert.DeserializeObject<><newsbody>>(body);
            news.CryptoNews = newsBody;
            lstNews.ItemsSource = newsBody;
        }
    
        // Ocultar indicador de carga
        loadingIndicator.IsVisible = false;
    }
    

    Esto mostrará el indicador de carga mientras se cargan los datos y lo ocultará cuando se hayan cargado. También puedes ajustar la duración del indicador de carga cambiando la propiedad IsRunning del ActivityIndicator.

Comments are closed.