J'ai un CursorAdapter personnalisé qui prend des éléments d'une base de données et de les afficher dans un listview. Si possible, je voudrais afficher seulement certains éléments basés sur une certaine valeur booléenne dans un élément de base de données. Voici quelque chose de semblable à ce que je voudrais faire:Comment afficher uniquement des éléments spécifiques dans un CursorAdapter
package itp.uts.program;
import android.content.Context;
import android.database.Cursor;
import android.graphics.Color;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CursorAdapter;
import android.widget.TextView;
//Adapter tests if an element is read or unread, and bolds the items that are unread
public class BoldAdapter extends CursorAdapter{
private final LayoutInflater mInflater;
public BoldAdapter(Context context, Cursor c, boolean autoRequery) {
super(context, c, autoRequery);
mInflater = LayoutInflater.from(context);
}
public BoldAdapter(Context context, Cursor c) {
super(context, c);
mInflater = LayoutInflater.from(context);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
//Creates a view to display the items in
final View view = mInflater.inflate(R.layout.notes_row, parent, false);
TextView textRequestNo = (TextView) view.findViewById(R.id.text1);
TextView textMessage = (TextView) view.findViewById(R.id.text2);
StringBuilder requestNo = new StringBuilder(cursor.getString(cursor
.getColumnIndex("requestNo")));
StringBuilder message = new StringBuilder(cursor.getString(cursor
.getColumnIndex("Message")));
//Sets the text fields as elements from the database
textRequestNo.setText(requestNo);
textMessage.setText(message);
if (cursor.getString(cursor.getColumnIndex("Read")).equals("true"))
{//Tests if the item is unread
**//DO NOT SHOW THE ELEMENT, HOW DO I DO THIS?**
}
return view;
}
}
N'a même pas pensé à cela, merci. Qu'est-ce que je demanderais exactement pour. Je ne l'ai jamais vraiment traité de base de données avant l'interrogation, et seulement savoir que je changerais un paramètre dans cet appel: retour mDb.query (DATABASE_TABLE, new String [] {KEY_ROWID, KEY_TITLE, KEY_BODY, KEY_BODY1, KEY_BODY2, KEY_BODY3, KEY_BODY4, KEY_BODY5}, null, null, null, null, null); – mbauer14
@ mbauer14: C'est vraiment impossible de répondre, puisque je n'ai pas créé votre schéma de base de données. Vous avez vraiment besoin de passer du temps à apprendre le langage SQL avant de créer des applications Android qui utilisent SQLite. Pardon! – CommonsWare
Ouais je fais vraiment, je viens d'essayer d'apprendre que je vais, mais avec des bases de données, il semble que ce travail ne fonctionne tout simplement pas. Dire que je veux retourner comme un curseur tous les éléments où KEY_BODY3 est faux, est-ce une opération simple ou dois-je juste lire plus? Merci – mbauer14