Android SimpleCursorAdapter / ListView проблема - PullRequest
0 голосов
/ 11 августа 2010

У меня проблема с отображением результатов запроса sql в ListView через SimpleCursorAdapter.Это мой запрос:

String sql = "" +
"SELECT (Clients.firstname || \" \" ||  Clients.surname) AS client_name, " +
    "Visits._id, " +
    "Status.status, " +
 "strftime('%H:%M',time(sql_start_date,'unixepoch')) as start_time, " +
 "strftime('%H:%M',time(sql_end_date,'unixepoch')) as end_time " + 
 "FROM " +
         "Visits,Clients,Status " +
 "WHERE " +
         "Visits.status = Status.remote_id " +
 "AND " +
         "Visits.client_id = Clients.remote_id " +
 "AND " +
  "Visits.sql_start_date > "+checkpoint+" " +
 "AND " +
  "Visits.sql_end_date < "+endpoint;

, когда я выполняю этот запрос, я получаю типичный набор результатов, например, так:

client_name   |Visit._id|Status.status |start_time |end_time
__________________________________________________________
Kevin Bradshaw|187      |Pending       |13:00      |14:00
Peter Flynn   |193      |Pending       |15:00      |16:30

Я хочу вывести этот курсор в просмотр списка.Проблема, с которой я сталкиваюсь, заключается в том, что я могу вывести имя и состояние клиента без проблем, но поля start_time и end_time остаются пустыми.

мой код адаптера курсора такой:

Cursor cur = HomeScreen.this.application.getVisitsHelper().fetchVisits();
startManagingCursor(cur);
// the desired columns to be bound     
String[] columns = new String[] {VisitsAdapter.KEY_CLIENT_FULL_NAME, VisitsAdapter.KEY_STATUS,VisitsAdapter.KEY_CLIENT_START_TIME, VisitsAdapter.KEY_CLIENT_END_TIME};

// the XML defined views which the data will be bound to
int[] to = new int[] { R.id.name_entry,R.id.number_entry,R.id.start_time_display,R.id.end_time_display  };

// create the adapter using the cursor pointing to the desired data as well as the layout information
SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(HomeScreen.this, R.layout.list_element, cur, columns, to);

// set this adapter as ListActivity's adapter
HomeScreen.this.setListAdapter(mAdapter);

И, наконец, мой XML-макет (list_element.xml) выглядит следующим образом:

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

Итак, мой вопрос,почему какой-то код (т. е. статус и имя клиента) получает выходные данные, в то время как мои временные поля (start_time, end_time) отсутствуют?

Это потому, что простые адаптеры курсора могут иметь дело только с целочисленными значениями, строками и моим временемпеременные берутся из временных отметок sql в базе данных?

1 Ответ

1 голос
/ 11 августа 2010

Извините, ребята, не тратьте впустую свое время на это.

проблема была в опечатке .. Я ссылался на android_id в моем xml-файле, когда он должен был быть android: id

спасибо в любом случае

Кев

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...