Jump to content

Charger une Listview a partir d'un fichier txt


asphalte01

Recommended Posts

Bonjour a tous,

je voudrais créer une application qui contient ne liste view remplie par un fichier text.

Le problème est que dès que je clique sur le bouton liste j'ai le message d'erreur me disant de forcer la fermeture de l'appli.

Je ne comprends pas pourquoi, le code m'a l'aire simple pourtant.

Voici la fonction qui remplie la bibliothèque :

private void RemplirLaBibliotheque(){

// OUvrir le fichier BaseManga.txt

String NOTES ="Monfichier.txt";

File file = new File(Environment.getExternalStorageDirectory(), NOTES);

FileReader fr;

try {

fr = new FileReader(file);

BufferedReader br = new BufferedReader(fr);

// clean de la bibli

maBibliotheque.clear();

//remplissage

String s;

try {

while((s = br.readLine()) != null) {

String[] tab_str = s.split(";");

maBibliotheque.add(new MangaClass(tab_str[0], tab_str[1],tab_str[2],tab_str[3]));

}

br.close();

fr.close();

file = null;

} catch (IOException e) {

// TODO Auto-generated catch block

Toast.makeText(this, "error"+e.toString(), Toast.LENGTH_LONG).show();

}

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

Toast.makeText(this, "error"+e.toString(), Toast.LENGTH_LONG).show();

}

}

Voici l'appel de la fonction et de l'adapteur :

RemplirLaBibliotheque();

MonAdapter adapter = new MonAdapter(this, maBibliotheque);

lvListe = (ListView)findViewById(R.id.lvListe);

lvListe.setAdapter(adapter);

adapter.notifyDataSetChanged();

Et le code qui rempli le listview (adapter) :

public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder holder;

if(convertView == null) {

holder = new ViewHolder();

convertView = inflater.inflate(R.layout.liste, null);

holder.tvTitre = (TextView)convertView.findViewById(R.id.tvTitre);

holder.tvAuteur = (TextView)convertView.findViewById(R.id.tvAuteur);

convertView.setTag(holder);

} else {

holder = (ViewHolder) convertView.getTag();

}

holder.tvTitre.setText(biblio.get(position).getManga()+" - "+biblio.get(position).getTome());

holder.tvAuteur.setText(biblio.get(position).getAuteur()+" - "+biblio.get(position).getEditeur());

return convertView;

}

J'ai prévue dans le code l'affichage d'un message d'erreur si il ne trouve pas le fichier mais rien.

J'arrive via une autre fonction a écrire dans mon fichier sans problème mais l'afficher dans le listview est galère.

Je tourne en rond dessus depuis pas mal de temps maintenant et je ne vois plus quoi faire.

Si ça peut vous aider voici le layout :

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

<ListView

android:id="@+id/lvListe"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

</ListView>

<TextView

android:id="@+id/tvTitre"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

/>

<TextView

android:id="@+id/tvAuteur"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

/>

</LinearLayout>

Link to comment
Share on other sites

Je viens de voir que le problème est bien dans la fonction Remplir mais je ne vois pas ou. :emo_im_undecided:

Personne n'a d'idée.

J'ai l'impression que je ne dois pas bien m'y prendre pour l'utilisation du fichier.

Savez comment je peux ouvrir un fichier txt (autre méthode que le Filereader) pour charger ma liste ?

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...