1
votes

Comment stocker la valeur d'espace réservé dans l'entrée xamarin.forms

Je voudrais que mes utilisateurs n'aient pas à saisir leurs identifiants Wi-Fi à chaque fois qu'ils remplissent ce formulaire sur mon application xamarin.forms. J'essaie de trouver un moyen de stocker la valeur que l'utilisateur a entrée pour la dernière fois dans une entrée. Aucune suggestion?

Je pensais que cela pourrait être aussi simple que de le stocker dans un champ sinon nul, mais j'obtiens une erreur indiquant "Seules l'affectation, l'appel, l'incrémentation, la décrémentation, l'attente et les nouvelles expressions d'obect peuvent être utilisées comme instruction" p>

En haut de ma classe, j'ai un champ.

if (WifiNamePlaceholder == null)
{
   WifiNamePlaceholder = "Enter in your wifi credentials"
}

wifi_name = new Xamarin.Forms.Entry
{
   BackgroundColor = Color.White,
   Placeholder = WifiNamePlaceholder,
   Margin = new Thickness(0, 0, 10, 0),
   FontFamily = Fonts.HelveticaNeueBold,
   FontSize = labelSize
}

//Attempt to set new value here but get error
//Doing this in hopes it can save their entry for next time.

wifi_name.Placeholder == WifiNamePlaceholder;

If you have any suggestions it would be greatly appreciated! Thank you!

Puis plus tard dans la page, j'ai mon entrée

string WifiNamePlaceholder;


0 commentaires

5 Réponses :


2
votes

Vous pouvez l'enregistrer dans une base de données locale sur le téléphone de l'utilisateur, puis remplir l'espace réservé avec la valeur que vous obtenez de la base de données

essayez ce lien: https://docs.microsoft.com/ fr-fr / xamarin / xamarin-forms / data-cloud / data / databases


0 commentaires

0
votes

Essayez de l'enregistrer dans la base de données ou dans un fichier xml. De cette façon, vous pouvez l'utiliser dans toute votre application.


0 commentaires

4
votes

Entry.Placeholder n'est en fait utile que pour les Entry vides. C'est juste un texte d'information qui s'affiche lorsque Entry.Text est vide. Ainsi, une fois que l'utilisateur a entré une valeur, vous définissez Entry.Text la prochaine fois que la page s'affiche.

Vous devriez vraiment prendre le temps de vous familiariser avec le fonctionnement de la liaison de données dans Xamarin.Forms et MVVM en général.


0 commentaires

4
votes

Utilisez Xamarin.Essentials.Preferences ou Xamarin.Essentials.SecureStorage. Ils sont faciles à utiliser et ne nécessitent pas beaucoup de frais généraux.

Xamarin.Essentials.Preferences.Get("Key", default(string));
Xamarin.Essentials.Preferences.Set("Key", "stringToSave")

Ensuite, définissez simplement votre Entry.Text en utilisant la valeur stockée. Consultez la documentation: Xamarin.Essentials.Preferences p>


2 commentaires

Je suis allé avec cette solution hier soir. Merci! De plus, @ alsed42 avait également de bons points. Merci tout le monde.


Aucun problème. Heureux que cela ait fonctionné pour vous. Comme @ alsed42 l'a dit, vous devriez utiliser une approche MVVM avec des liaisons de données. Cela peut aider à garder l'application compartimentée et plus facile à gérer.



0
votes

si vous utilisez des appels API, essayez de sauvegarder ce mot de passe dans le backend, afin de pouvoir récupérer le mot de passe en appelant cette API chaque fois que l'utilisateur ouvre l'application.

Sinon, enregistrez simplement le mot de passe dans les préférences partagées afin qu'il reste sauvegardé même si l'application se ferme comme expliqué dans les réponses précédentes.


0 commentaires