如何动态地将视图添加到自定义游标适配器..列表视图的每一行看起来像..
<?XML version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content" android:orientation="horizontal"
android:layout_width="fill_parent">
<TextView android:layout_height="wrap_content"
android:layout_width="fill_parent" android:layout_weight=".9"
android:id="@+id/book_name" android:text="Default"
android:textStyle="bold" />
<TextView
android:id="@+id/tick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:text="NOT ADDED" />
</LinearLayout>
并且适配器看起来像.. ::
package com.himanshu;
import android.content.Context;
import android.database.Cursor;
import android.text.format.DateUtils;
import android.view.View;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
public class ListViewAdapter extends SimpleCursorAdapter
{
static String[] FROM={DbHelper.BOOK_NAME };
static int[] TO ={R.id.book_name};
public ListViewAdapter(Context context, Cursor c)
{
super(context, R.layout.row, c, FROM, TO);
}
// This is where the actual binding of a cursor to view happens
@Override
public void bindView(View row, Context context, Cursor cursor)
{
super.bindView(row, context, cursor);
int flag = cursor.getInt(cursor.getColumnIndex(DbHelper.FLAG));
if(flag==1)
{
TextView tick = (TextView) row.findViewById(R.id.tick);
tick.setText("ADDED");
}
}
}
我使用过SimpleCursorAdapter,因为我想通过数据库访问数据... 现在,当活动正在运行时,数据库中有一些插入,我必须在列表视图中显示..
答案 0 :(得分:1)
您应该使用CustomAdapter并覆盖getView(位置)以实现此功能。
答案 1 :(得分:0)
当数据发生变化时,您必须使用
更改光标changeCursor(your_new_cursor);
您之前给适配器的光标将被关闭。