0

I have a problem displaying the results of an sql query into a ListView via SimpleCursorAdapter. This is my query:

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;

when I execute this query I get a typical result set like so:

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

I want to output this cursor to a listview. The problem I run into is that i can output client name and status no problems, but the start_time and end_time fields remain blank.

my cursor adapter code is this:

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);

And finally my xml layout (list_element.xml) is as follows:

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

So my question is, how come some of the code (i.e. status and client name) is getting output while my time fields (start_time, end_time) are not?

Is it because simple cursor adapters can only deal with ints and strings and my time variables originate from sql timestamps in the database?

1 Answer 1

1

Sorry guys, dont waste your time on this.

the problem was a typo.. I referred to android_id in my xml file when it should have been android:id

thanks anyway

Kev

Sign up to request clarification or add additional context in comments.

1 Comment

@josh, You cant accept your own answer straight off, when I tried to do so earlier it told me that I had to wait 22 hours before I could accept my own answer

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.