Obtenez tous les éléments à partir du curseur dans android
J'utilise ce code pour obtenir l'élément de curseur, mais il vient juste de retour d'un élément de ma liste. Alors, comment puis-je obtenir tous les éléments de ma liste, c'est mon code?
class MyAdapter extends SimpleCursorAdapter
{
private Context context;
public MyAdapter(Context context, int layout, Cursor c, String[] from, int[] to)
{
super(context, layout, c, from, to);
this.context = context;
}
public View getView(int position, View convertView, ViewGroup parent){
Cursor cursor = getCursor();
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
View v = inflater.inflate(R.layout.sbooks_row, null);
TextView title = (TextView)findViewById(R.id.title);
if(title != null){
int index = cursor.getColumnIndex(SBooksDbAdapter.KEY_TITLE);
String type = cursor.getString(index);
title.setText(type);
}
TextView lyrics = (TextView)findViewById(R.id.lyrics);
if(lyrics != null){
int index = cursor.getColumnIndex(SBooksDbAdapter.KEY_LYRICS);
String type = cursor.getString(index);
lyrics.setText(type);
}
ImageView im = (ImageView)findViewById(R.id.icon);
if(im!=null){
int index = cursor.getColumnIndex(SBooksDbAdapter.KEY_FAVORITE);
int type = cursor.getInt(index);
if(type==1){
im.setImageResource(android.R.drawable.btn_star_big_on);
}
else{
im.setImageResource(android.R.drawable.btn_star_big_off);
}
}
return v;
}
InformationsquelleAutor Dennie | 2009-08-20
Vous devez vous connecter pour publier un commentaire.
CursorAdapter se comporte un peu différente de celle de l'autre la liste des cartes au lieu de getView(), la magie qui se passe dans newView() et bindView(), donc je pense que getView() n'est pas la bonne méthode pour remplacer la.
Vous pouvez obtenir un seul résultat, parce que, après la première ligne est créée, CursorAdapter attend bindView() pour insérer de nouvelles données et la réutilisation de la déjà gonflé ligne, et vous vous attendez à getView() pour le faire.
Je vous suggère de passer votre code de newView() pour gonfler votre point de vue, et bindView() pour exécuter la logique réelle pour remplir les lignes.
Bonne chance, et tiens nous au courant sur les résultats.
Je suis en supposant que le curseur renvoyé par la getCursor() la méthode est correctement récupération de toutes les lignes de votre tableau, vous devez explicitement déplacer le curseur à une position avant d'accéder aux données d'une ligne, donc au début de votre getView() la méthode que vous devez suivre.