09.02.2017 Views

creez-des-applications-pour-android

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4 Vers <strong>des</strong> <strong>applications</strong> plus complexes<br />

File[] fichiers = mCurrentFile.listFiles();<br />

// On transforme le tableau en une structure de données de taille variable<br />

ArrayList liste = new ArrayList();<br />

for(File f : fichiers)<br />

liste.add(f);<br />

mAdapter = new FileAdapter(this, <strong>android</strong>.R.layout.simple_list_item_1, liste);<br />

// On ajoute l'adaptateur à la liste<br />

mList.setAdapter(mAdapter);<br />

// On trie la liste<br />

mAdapter.sort();<br />

// On ajoute un Listener sur les items de la liste<br />

mList.setOnItemClickListener(new OnItemClickListener() {<br />

}<br />

}<br />

// Que se passe-t-il en cas de clic sur un élément de la liste ?<br />

public void onItemClick(AdapterView adapter, View view, int position, long id)<br />

File fichier = mAdapter.getItem(position);<br />

// Si le fichier est un répertoire…<br />

if(fichier.isDirectory())<br />

// On change de répertoire courant<br />

updateDirectory(fichier);<br />

else<br />

// Sinon, on lance l'item<br />

seeItem(fichier);<br />

}<br />

});<br />

Télécharger le projet<br />

4.4.4 Améliorations envisageables<br />

4.4.4.1 Quand la liste est vide ou le périphérique externe est indisponible<br />

On se trouve en face d’un écran blanc pas très intéressant… Ce qui <strong>pour</strong>rait être plus excitant,<br />

c’est un message qui indique à l’utilisateur qu’il n’a pas accès à ce périphérique externe. On peut<br />

faire ça en indiquant un layout <strong>pour</strong> notre ListActivity ! Oui, je sais, je vous ai dit de ne pas<br />

le faire, parce que notre activité contient principalement une liste, mais là on pousse le concept<br />

encore plus loin. Le layout qu’on utilisera doit contenir au moins une ListView <strong>pour</strong> représenter<br />

celle de notre ListActivity, mais notre application sera bien incapable de la trouver si vous ne<br />

lui précisez pas où elle se trouve. Vous pouvez le faire en mettant comme identifiant à la ListView<br />

<strong>android</strong>:id="@<strong>android</strong>:id/list". Si vous voulez q’un widget ou un layout s’affiche quand la<br />

liste est vide, vous devez lui attribuer l’identifiant <strong>android</strong>:id="@<strong>android</strong>:id/empty". Pour<br />

ma correction, j’ai le XML suivant :<br />

310

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!