SimpleCursorAdapter是一个简单的adapter,提供数据库Cursor到TextView的映射。
在实际开发过程中,除了TextView外,往往还需要依赖于数据库数据的其它的组件。
通过继承SimpleCursorAdapter,重写bindView(View view, Context context, Cursor cursor)来实现
示例代码
Main.java
package dyingbleed.iteye;
import android.app.ListActivity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.SimpleCursorAdapter;
public class Main extends ListActivity {
private MySQLiteOpenHelper sqlite;
private MyListViewAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sqlite = new MySQLiteOpenHelper(this);
initListView();
}
@Override
protected void onDestroy() {
sqlite.close();
super.onDestroy();
}
private void initListView() {
SQLiteDatabase readableDB = sqlite.getReadableDatabase();
Cursor cursor = readableDB.query(MySQLiteOpenHelper.TABLE_NAME, null, null, null, null, null, null);
adapter = new MyListViewAdapter(this, cursor);
setListAdapter(adapter);
}
private class MyListViewAdapter extends SimpleCursorAdapter {
public MyListViewAdapter(Context context, Cursor c) {
super(context, R.layout.item, c, new String[] {MySQLiteOpenHelper.VOLUMN_NAME}, new int[] {R.id.item_NameTextView});
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
super.bindView(view, context, cursor);
final int id = cursor.getInt(cursor.getColumnIndex(MySQLiteOpenHelper.VOLUMN_ID));
Button delete = (Button) view.findViewById(R.id.item_DeleteButton);
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SQLiteDatabase writableDB = sqlite.getWritableDatabase();
writableDB.delete(MySQLiteOpenHelper.TABLE_NAME
, MySQLiteOpenHelper.VOLUMN_ID+"=?" //添加"=?"
, new String[] {String.valueOf(id)});
writableDB.close();
initListView();
}
});
}
}
}
MySQLiteOpenHelper.java
package dyingbleed.iteye;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "dyingbleed";
public static final String TABLE_NAME = "list";
public static final String VOLUMN_ID = "_id";
public static final String VOLUMN_NAME = "name";
public MySQLiteOpenHelper(Context context) {
super(context, TABLE_NAME, null, 1);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE IF NOT EXISTS "
+TABLE_NAME
+"("
+VOLUMN_ID
+" INTEGER PRIMARY KEY AUTOINCREMENT,"
+VOLUMN_NAME
+" TEXT UNIQUE)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
运行截图
- 大小: 18.2 KB
分享到:
相关推荐
- 在Android中,Adapter通常实现了一个或多个特定接口,例如BaseAdapter、SimpleAdapter、ArrayAdapter和SimpleCursorAdapter等。这些Adapter提供了不同的功能和灵活性,以适应不同场景的需求。 2. **Adapter的...
对于Android开发者而言,理解`Adapter`的继承结构及其与相关接口的关系至关重要。 #### 二、Adapter继承结构图分析 根据所提供的信息,“Adapter的继承图示说明”表明了一个详细的`Adapter`继承结构图。虽然具体的...
在实际应用中,我们通常需要自定义布局来满足复杂的UI需求,可以通过继承BaseAdapter实现自定义Adapter。在自定义Adapter中,重写`getView()`方法来返回每个列表项的View对象。 总结,ArrayAdapter适用于简单的数据...
Android 中的 Adapter 是连接后端数据和前端显示的适配器接口,是数据和 UI(View)之间一个重要的纽带。在常见的 View(ListView,GridView)等地方都需要用到 Adapter。Adapter 的主要作用是将数据映射到视图上,...
- 当系统提供的Adapter不能满足需求时,可以继承BaseAdapter并重写其方法,如`getView()`,`getCount()`,`getItem()`等,以实现自定义的视图展示和数据处理逻辑。 6. **Adapter优化** - 为了提高性能,Adapter的...
总结起来,自定义Adapter在Android开发中扮演了至关重要的角色,它允许开发者根据需求定制ListView的每一个元素,提供更灵活的界面设计和交互体验。通过创建自定义Adapter并实现相关方法,我们可以实现更复杂的列表...
BaseAdapter 是 Android 中最基本的 Adapter 类,它是一个抽象类,需要继承它来实现具体的 Adapter。继承 BaseAdapter 需要实现许多方法,因此具有较高的灵活性。但是,这也意味着需要更多的编程工作和更多的逻辑...
ArrayAdapter适用于绑定数组数据,SimpleAdapter用于绑定XML中定义的控件与数据,SimpleCursorAdapter则用于处理数据库查询结果,而BaseAdapter是所有Adapter的基础,我们可以自定义继承于它的Adapter以满足特定需求...
在Android开发中,Adapter是一个至关重要的组件,它起到了数据源和UI组件之间的桥梁作用,将数据转换为可显示的视图。在这个系统中,我们通常会遇到几种不同类型的Adapter,包括BaseAdapter、SimpleAdapter、...
在Android中,有多种预定义的Adapter类供开发者选择,包括BaseAdapter、SimpleAdapter、ArrayAdapter和SimpleCursorAdapter等。BaseAdapter是一个抽象类,提供了最基本的框架,开发者可以根据需求重写必要的方法以...
SimpleCursorAdapter adapter = new SimpleCursorAdapter( this, android.R.layout.simple_list_item_1, cursor, new String[] { "column_name" }, new int[] { android.R.id.text1 }); listView....
ListView的简单介绍与使用 GridView的简单介绍与使用 自定义BaseAdapter BaseAdapter的三种使用方式 ...BaseAdapter:抽象类,实际开发中我们会继承这个类并且重写相关方法,用得最多的一个Adapter!
SimpleCursorAdapter adapter = new SimpleCursorAdapter( this, R.layout.list_item, cursor, new String[]{"column1", "column2"}, new int[]{R.id.view1, R.id.view2}, 0 ); listView.setAdapter(adapter);...
在Xamarin.Android中,我们可以使用BaseAdapter或已有的适配器,如ArrayAdapter、SimpleCursorAdapter等。 **1. 创建ListView** 在布局文件(如activity_main.xml)中添加ListView控件: ```xml android:id="@+...
- 自定义Adapter需要继承`BaseAdapter`或上述现成的Adapter,并重写`getView()`方法,以便自由设计每个选项的视图。 5. **下拉菜单的自定义**: - 当Spinner模式为`dropdown`时,可以使用`SpinnerAdapter`的`...
SQLite适配器(Adapter)在Android开发中扮演着重要角色,它们帮助我们把SQLite数据库中的数据转换成用户友好的UI展示,通常在ListView或RecyclerView等视图组件中使用。以下是关于SQLite适配器的详细知识: 1. ...
2. 创建自定义的Adapter:继承BaseAdapter或者已有的Adapter,如ArrayAdapter,并重写其中的方法,如`getView()`,以便在该方法中使用自定义布局文件渲染每个列表项。 ```java public class CustomAdapter extends ...