代码之家  ›  专栏  ›  技术社区  ›  Kevin Bradshaw

Android SimpleCorsorAdapter/ListView问题

  •  0
  • Kevin Bradshaw  · 技术社区  · 14 年前

    将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
    

    我遇到的问题是,我可以输出客户端名称和状态“没有问题”,但“开始时间”和“结束时间”字段仍然为空。

    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\u 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>
    

    1 回复  |  直到 10 年前
        1
  •  1
  •   Kevin Bradshaw    14 年前

    抱歉,伙计们,别浪费时间了。

    问题是打错了。。我在xml文件中引用了androidandroid:id

    无论如何谢谢你

    基夫