Gai*_*ter 59 database sqlite android android-layout android-cursoradapter
您好我正在寻找与sqlite一起使用游标适配器的示例代码?
Jos*_*ter 103
这是一个非常简单但非常有效的例子.一旦你掌握了基础知识,你就可以轻松地建立它.
使用带有SQLite 的Cursor Adapter有两个主要部分:
从数据库中创建一个正确的Cursor.
创建一个自定义Cursor Adapter,它从数据库中获取Cursor数据,并将其与您打算用来表示数据的View配对.
在您的活动中:
SQLiteOpenHelper sqLiteOpenHelper = new SQLiteOpenHelper(
context, DATABASE_NAME, null, DATABASE_VERSION);
SQLiteDatabase sqLiteDatabase = sqLiteOpenHelper.getReadableDatabase();
String query = "SELECT * FROM clients ORDER BY company_name ASC"; // No trailing ';'
Cursor cursor = sqLiteDatabase.rawQuery(query, null);
ClientCursorAdapter adapter = new ClientCursorAdapter(
this, R.layout.clients_listview_row, cursor, 0 );
this.setListAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)
注意:扩展自ResourceCursorAdapter
假设您使用XML来创建视图.
public class ClientCursorAdapter extends ResourceCursorAdapter {
public ClientCursorAdapter(Context context, int layout, Cursor cursor, int flags) {
super(context, layout, cursor, flags);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView name = (TextView) view.findViewById(R.id.name);
name.setText(cursor.getString(cursor.getColumnIndex("name")));
TextView phone = (TextView) view.findViewById(R.id.phone);
phone.setText(cursor.getString(cursor.getColumnIndex("phone")));
}
}
Run Code Online (Sandbox Code Playgroud)
Eri*_*ski 38
在Android中,如何在sqlite中使用带有原始查询的Cursor:
Cursor c = sampleDB.rawQuery("SELECT FirstName, Age FROM mytable " +
"where Age > 10 LIMIT 5", null);
if (c != null ) {
if (c.moveToFirst()) {
do {
String firstName = c.getString(c.getColumnIndex("FirstName"));
int age = c.getInt(c.getColumnIndex("Age"));
results.add("" + firstName + ",Age: " + age);
}while (c.moveToNext());
}
}
c.close();
Run Code Online (Sandbox Code Playgroud)
Asw*_*ran 20
使用Sqlite的CursorAdapter示例
...
DatabaseHelper helper = new DatabaseHelper(this);
aListView = (ListView) findViewById(R.id.aListView);
Cursor c = helper.getAllContacts();
CustomAdapter adapter = new CustomAdapter(this, c);
aListView.setAdapter(adapter);
...
class CustomAdapter extends CursorAdapter {
// CursorAdapter will handle all the moveToFirst(), getCount() logic for you :)
public CustomAdapter(Context context, Cursor c) {
super(context, c);
}
public void bindView(View view, Context context, Cursor cursor) {
String id = cursor.getString(0);
String name = cursor.getString(1);
// Get all the values
// Use it however you need to
TextView textView = (TextView) view;
textView.setText(name);
}
public View newView(Context context, Cursor cursor, ViewGroup parent) {
// Inflate your view here.
TextView view = new TextView(context);
return view;
}
}
private final class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "db_name";
private static final int DATABASE_VERSION = 1;
private static final String CREATE_TABLE_TIMELINE = "CREATE TABLE IF NOT EXISTS table_name (_id INTEGER PRIMARY KEY AUTOINCREMENT, name varchar);";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE_TIMELINE);
db.execSQL("INSERT INTO ddd (name) VALUES ('One')");
db.execSQL("INSERT INTO ddd (name) VALUES ('Two')");
db.execSQL("INSERT INTO ddd (name) VALUES ('Three')");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public Cursor getAllContacts() {
String selectQuery = "SELECT * FROM table_name;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
return cursor;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
107592 次 |
最近记录: |