Dans se tuto je vais développer une listview personnalisée.
La listview sous android c’est par défaut ça
je vais personnalisée ma listview elle sera de la forme titre en taille 15 et en dessous résumé en taille 10
Je crée ma class Listperso qui est une extension de la class ListActivit
public class Listperso extends ListActivity {
private String[][] aTableauResult;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new SpeechListAdapter(this));
}
dans la méthode setListAdapter je passe la class SpeechListAdapter(this) cette classe et une extension de la class BaseAdapter je crée ma classe à la suite
private class SpeechListAdapter extends BaseAdapter {
private Context mContext;
private String[] sResume ;
private String[] sTitre;
public SpeechListAdapter(Context context) {
mContext = context;
aTableauResult= //ajouter une fonction pour récupérer vos résultats dans un tablau au choix
sResume = aTableauResult[1];
sTitles= aTableauResult[0];
}
public int getCount() {
return sTitre.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
SpeechView sv;
if (convertView == null) {
sv = new SpeechView(mContext, mTitles[position],
mDialogue[position]);
} else {
sv = (SpeechView) convertView;
sv.setTitre(sTitre[position]);
sv.setResume(sResume[position]);
}
return sv;
}
}
sv est un objet de type SpeechView. je crée donc ma class SpeechView c’est elle qui vas définir le contenu de chaque item de ma liste.
private class SpeechView extends LinearLayout {
private TextView mTitle;
private TextView mResume;
public SpeechView(Context context, String titre, String resume) {
super(context);
this.setOrientation(VERTICAL);
// ici on construit l'affichage de notre item on peut également le faire dans un xml
//ici le titre et la taille du texte avec size
mTitle = new TextView(context);
mTitle.setText(titre);
mTitle.setTextSize(15);
addView(mTitle, new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
// le résumé avec la taille du texte
mResume= new TextView(context);
mResume.setText(resume);
mDialogue.setTextSize(10);
addView(mDialogue, new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
}
/**
* Convenience method to set the title of a SpeechView
*/
public void setTitre(String titre) {
mTitre.setText(titre);
}
/**
* Convenience method to set the dialogue of a SpeechView
*/
public void setDialogue(String words) {
mDialogue.setText(words);
}
}
Il ne reste plus qu’à rajoute la méthode onListItemClick pour traiter le click sur un item de notre liste.
protected void onListItemClick(ListView l, View v, int position, long id){
super.onListItemClick(l, v, position, id);
// rajouter l'action sur le click sur votre liste
}
IMPORTANT importer les librairies
import android.app.ListActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
Il est temps de mettre à profit les tutoriels d’Android France:
Passez à la vitesse supérieure et investissez quelques dizaines d’euros pour acquérir les connaissances qui vous feront gagner de l’argent avec vos applications, rendez-vous sur notre boutique Android-france pour ces formations en vidéo