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

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.