Comment obtenir le fichier en lecture ligne par ligne
J'ai un fichier contenant du texte dans une ligne séparée.
Je veux afficher la ligne en premier, et ensuite, si j'appuie sur un bouton, la deuxième ligne doit être affichée dans le TextView
et la première ligne devraient disparaître. Ensuite, si je le presse de nouveau, le troisième ligne devrait être affiché et ainsi de suite.
Devrais-je utiliser TextSwitcher
ou quoi que ce soit d'autre?
Comment puis-je le faire?
Vous devez vous connecter pour publier un commentaire.
Marqués comme "android-actifs", donc je vais supposer que votre fichier est dans le dossier assets. Ici:
Donner à ceci un essai. Je n'ai pas été en mesure de vérifier qu'il fonctionne complètement, mais je crois que c'est l'idée générale que vous voulez suivre. Naturellement, vous aurez envie de remplacer tout
R.id.textView1/button1
avec le nom que vous avez spécifié dans votre fichier de mise en page.Aussi: Il y a très peu de contrôle d'erreur pour des raisons d'espace. Vous voulez vérifier que votre actif existe, et je suis assez sûr il doit y avoir un
try/catch
bloquer lorsque vous ouvrez le fichier pour le lire.Edit: Grosse erreur, Ce n'est pas
R.layout
, c'estR.id
j'ai édité ma réponse pour résoudre le problème.Code suivant doit répondre à votre besoin
openFileInput()
-méthode d'? Aussi, vous devriez toujours utiliser un "try/finally`-bloc de fermer les flux (de sorte qu'ils se ferment, lorsqu'une Exception est levée).if (instream)
etwhile ( line = buffreader.readLine() )
besoin d'être remplacées par quelque chose commeif (instream != null)
etwhile( buffreader.hasNext() )
Vous pouvez simplement utiliser un TextView et un ButtonView. Lire le fichier à l'aide d'un BufferedReader, il vous fournira une bonne API pour lire les lignes une par une. Sur cliquez sur le bouton modifier le texte de la textview en utilisant settext.
Vous pourriez aussi envisager la lecture de tous le contenu du fichier et de le mettre à l'intérieur d'une liste de chaînes de caractères, cela peut être plus propre si votre fichier n'est pas trop grand.
Ce qui concerne,
Stéphane