2010-08-10 9 views
1

J'ai une application qui va interroger une base de données et tenter de sortir les résultats dans un format de liste. Ma première tentative a été d'utiliser un simpleCursorAdapter, qui a bien fonctionné pour les sorties de chaînes telles que le nom et l'état, mais n'affichait pas le champ de temps de mon curseur. Mon champ de temps dans ma base de données est de type Timestamp. la requête pour le champ de temps estProblème avec l'adaptateur de curseur personnalisé pour l'affichage de la liste dans Android

"strftime('%H:%M',time(sql_start_date,'unixepoch')) as start_time, " +

Un peu de recherche et il se avère que SimpleCursorAdapters ne fonctionne que pour les chaînes. Je trouve cela un peu confus que je l'aurais pensé que le start_time sur le terrain était sous la forme d'une chaîne (après tout ce que je peux voir le résultat dans la fenêtre du journal en disant:

Log.i(TAG,start_time); 

Donc ma prochaine tentative est de utiliser mon propre coutume CursorAdapter:

private class MyVisitsAdapter extends CursorAdapter{ 
    private Cursor mCursor; 
    private Context mContext; 
    private final LayoutInflater mInflater; 

    public MyVisitsAdapter(Context context, Cursor cursor) { 
     super(context, cursor, true); 
     mInflater = LayoutInflater.from(context); 
     mContext = context; 
    } 

    @Override 
    public void bindView(View view, Context context, Cursor cursor) { 
     String st = cursor.getString(cursor.getColumnIndex(VisitsAdapter.KEY_CLIENT_START_TIME)); 
     Log.i("Check Cursor result",st); 
     TextView t = (TextView) view.findViewById(R.id.start_time_display); 

     t.setText(st); 


     TextView t1 = (TextView) view.findViewById(R.id.end_time_display); 
     t.setText(cursor.getString(cursor.getColumnIndex(VisitsAdapter.KEY_CLIENT_END_TIME))); 

     t = (TextView) view.findViewById(R.id.name_entry); 
     t.setText(cursor.getString(cursor.getColumnIndex(VisitsAdapter.KEY_CLIENT_FULL_NAME))); 
    } 

    @Override 
    public View newView(Context context, Cursor cursor, ViewGroup parent) { 
     final View view = mInflater.inflate(R.layout.list_element, parent, false); 
     return view; 
    } 

    } 

le code échoue sur la ligne.

t.setText(st); 

avec une exception de pointeur null textview 'de start_time_display' on ne trouve pas par t l'adaptateur.

Le fichier XML avec le champ (list_element.xml) est la suivante:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     > 
    <TextView 
    android_id="@+id/start_time_display" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="16dip" 
    android:textColor="#333333" 
    android:layout_marginLeft="14px" 
></TextView> 
    <TextView 
    android_id="@+id/end_time_display" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="16dip" 
    android:textColor="#333333" 
    android:layout_toRightOf="@+id/start_time_display" 
    android:layout_marginLeft="64px"></TextView> 
<TextView 
    android:id="@+id/name_entry" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="16dip" 
    android:textColor="#333333" 
    android:layout_marginLeft="94px" 
    android:layout_toRightOf="@+id/end_time_display"/> 
     <TextView 
    android:id="@+id/number_entry" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="14dip" 
    android:textColor="#666666" 
    android:layout_marginLeft="14px" 
    android:layout_below="@+id/name_entry" 
    /> 
</RelativeLayout> 

qui, comme vous pouvez le voir, contient clairement Teh vue texte 'start_time_display'.

Espérons que je manque quelque chose de simple que quelqu'un avec un peu plus d'expérience (je suis très nouveau pour Android et mon Java est rouillée Tres)

Merci est avance

Kev

Répondre

0

gars Désolé, Ne perdez pas votre temps à ce sujet.

le problème était une faute de frappe .. j'ai parlé android_id dans mon fichier xml quand il aurait dû être android: id

merci quand même

Kev

+0

Salut, je mettre en œuvre le même code, bt je ai besoin pour des images view.do une idée? vérifier cela sur http://stackoverflow.com/questions/5153727/androidlist-view-with-thumbnail –