安卓开发教程:掌握列表视图显示数据库数据类型 (安卓列表视图显示数据库数据类型)
一、引言
列表视图是安卓开发中常用的一种控件,其可以以列表的形式显示数据。而在实际开发过程中,我们通常需要从数据库中读取数据,再将其展示在列表视图中,以提供更好的用户体验。因此本文将介绍如何使用列表视图显示数据库数据类型。
二、准备工作
在使用列表视图之前,我们需要先准备好数据库。这里我们以SQLite数据库为例进行介绍。下面是一个简单的创建SQLite数据库的范例代码:
“`
public class DBHelper extends SQLiteOpenHelper {
private static final String DB_NAME = “mydb.db”;
private static final int DB_VERSION = 1;
private static final String TABLE_NAME = “mytable”;
private static final String COLUMN_NAME = “name”;
private static final String COLUMN_AGE = “age”;
public DBHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = “create table ” + TABLE_NAME + ” (_id integer primary key autoincrement, “
+ COLUMN_NAME + ” text, ” + COLUMN_AGE + ” integer)”;
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = “drop table if exists ” + TABLE_NAME;
db.execSQL(sql);
onCreate(db);
}
}
“`
以上代码创建了一个名为“mydb.db”、版本为1的SQLite数据库,并创建了一张名为“mytable”的表,其中包含两列数据:名称和年龄。
三、读取数据并将其显示在列表视图中
接下来我们需要读取数据库中的数据,并将其放入列表视图中显示。下面是一个读取数据并显示在列表视图中的范例代码:
“`
public class MnActivity extends AppCompatActivity {
private ListView mListView;
private MyAdapter mAdapter;
private List mDataList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mn);
mListView = findViewById(R.id.listview);
mDataList = new ArrayList();
mAdapter = new MyAdapter();
mListView.setAdapter(mAdapter);
DBHelper dbHelper = new DBHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query(DBHelper.TABLE_NAME, new String[] {DBHelper.COLUMN_NAME, DBHelper.COLUMN_AGE}, null, null, null, null, null);
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex(DBHelper.COLUMN_NAME));
int age = cursor.getInt(cursor.getColumnIndex(DBHelper.COLUMN_AGE));
Person person = new Person(name, age);
mDataList.add(person);
}
cursor.close();
db.close();
mAdapter.notifyDataSetChanged();
}
private class MyAdapter extends BaseAdapter {
@Override
public int getCount() {
return mDataList.size();
}
@Override
public Object getItem(int position) {
return mDataList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
if (convertView == null) {
view = LayoutInflater.from(MnActivity.this).inflate(R.layout.item_layout, null);
} else {
view = convertView;
}
TextView nameText = view.findViewById(R.id.name_text);
TextView ageText = view.findViewById(R.id.age_text);
Person person = mDataList.get(position);
nameText.setText(person.getName());
ageText.setText(String.valueOf(person.getAge()));
return view;
}
}
private class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
}
“`
以上代码通过使用Cursor对象读取数据库数据,并将其存储到List中。然后再通过ListView的适配器MyAdapter将读取到的数据以列表视图的形式展示出来。通过设置不同的布局和适配器,我们可以更改列表视图的样式和展示方式,从而更好地满足不同的需求。
四、