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
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 –