2012-07-01 5 views
1

Mon application ayant une table SQLiteDatabase ayant deux champsvue de la liste Android de base de données

.... 2.message 1.Sujet émetteur

messagedb=context.openOrCreateDatabase("message",0, null); 
        messagedb.execSQL("CREATE TABLE IF NOT EXISTS tab2(sender INT(13),body varchar)"); 
        mydb.execSQL("INSERT INTO tab2 VALUES('"+sender+"','"+sb+"')"); 
//sb contains message 

Comment puis-je remplir une base de données ListView comme

http://a6.sphotos.ak.fbcdn.net/hphotos-ak-ash4/483993_349052115164919_754938581_n.jpg

L'espace d'image contient l'image de contact, au-dessus du champ de texte contient le nom d'expéditeur (nom de contact) ci-dessous le mes sage .... aussi je souhaite ajouter le message reçu la date et l'heure aussi .... aucune idée à ce sujet?

+0

L'URL de l'image ne fonctionne plus –

Répondre

0

Créez SimpleCursorAdapter personnalisé. Je pense que vous êtes assez intelligent pour interroger la base de données pour les colonnes requises. Une fois que votre cusror est prêt, passez-le à l'adaptateur personnalisé.

Ci-dessous vous trouverez une brève description de l'activité ci-dessous.

cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI, null, 
       null, null, null); 

contactList.setAdapter(new MyCursorAdapter(this, R.layout.row, cursor, 
       new String[] { ContactsContract.Contacts.DISPLAY_NAME, 
         ContactsContract.Contacts.LAST_TIME_CONTACTED }, 
       new int[] { R.id.name, R.id.email })); 

MyCursorAdapter.java

public class MyCursorAdapter extends SimpleCursorAdapter { 

    private Cursor cursor; 
    private int layout; 
    private Context context; 

    public MyCursorAdapter(Context context, int layout, Cursor cursor, 
      String[] from, int[] to) { 
     super(context, layout, cursor, from, to); 
     this.context = context; 
     this.cursor = cursor; 
     this.layout = layout; 

    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     cursor.moveToPosition(position); <---- This is very important. 
     LayoutInflater inflater = (LayoutInflater) context 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View view = inflater.inflate(layout, null); 
     TextView txtName = (TextView) view.findViewById(R.id.name); 
     TextView txtEmail = (TextView) view.findViewById(R.id.email); 

     int nameColumnIndex = cursor 
       .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); 
     int frequencyColumnIndex = cursor 
       .getColumnIndex(ContactsContract.Contacts.TIMES_CONTACTED); 

     txtName.setText(cursor.getString(nameColumnIndex)); 
     txtEmail.setText(cursor.getString(frequencyColumnIndex)); 
     return view; 
    } 
} 
Questions connexes