带子项的ListView避免2次相同的信息

时间:2017-05-15 07:34:12

标签: android listview simplecursoradapter

我使用SimpleCursorAdapter填充了我的数据库的ListView。 我的ListView中有2行,日期为1行(我的表中的一列),另一行是我的db的2列。

第一列是日期,第二列是课程,第三列是课程的主题。

问题是:如果我当天有多个课程,它会在我的应用中显示如下:

17年5月15日

英语阅读

17年5月15日

英语听力

但是,我想,如果我当天有多个课程,我只想显示第一行(在顶部),如下所示:

17年5月15日

英语阅读

英语听力

我该怎么做?

这是我的list_row_page_itude.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="16dp">

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/linearLayout"
    android:orientation="vertical">

    <TextView
        android:id="@+id/text_date"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Date"/>

</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/linearLayout"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="11dp">

    <TextView
        android:id="@+id/text_branche_cours"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="English"/>

    <TextView
        android:id="@+id/text_trait"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=" - " />
    <TextView
        android:id="@+id/text_designation"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Reading"
        />
</LinearLayout>

我如何在我的代码中实现它:

lvJalons = (ListView)findViewById(R.id.ListJalons);
    Cursor cursor = dbhelper.getAllJalons();
    String[] from = { "date_point", "designation_jalon","description_jalon" };
    int[] to = {R.id.text_date,R.id.text_branche_cours, R.id.text_designation };
    adapter = new SimpleCursorAdapter(this, R.layout.list_row_page_itude, cursor, from, to, 0);
    lvJalons.setAdapter(adapter);
    adapter.notifyDataSetChanged();

我使用的数据库上的方法(getAllJalons()):

` public Cursor getAllJalons()
{
    Calendar c = Calendar.getInstance();
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    Date date = c.getTime();
    String currentDate = df.format(date);

    String query = ("select ID as _id,date_jalon,date_point,devoir,evaluation,importance,designation_jalon, description_jalon,cours_fk from "+TABLE_JALONS+" where date(date_jalon) >='"+currentDate+"'");
    Open();
    Cursor cursor = db.rawQuery(query,null);
    return cursor;
}`

谢谢你们。

1 个答案:

答案 0 :(得分:0)

CursorAdapters直接不支持切片。您可以查看此项目,该项目将该功能扩展到CursorAdapters - https://github.com/twotoasters/SectionCursorAdapter