怎么将sqllite中的数据在Android中显示出来
时间: 2024-02-12 11:06:41 浏览: 84
要在 Android 中显示 SQLite 中的数据,可以使用以下步骤:
1. 创建一个 SQLite 数据库,可以使用 SQLiteOpenHelper 类。
2. 在数据库中创建表并插入数据。
3. 创建一个 RecyclerView 或 ListView 来显示数据。
4. 创建一个适配器来将数据绑定到 RecyclerView 或 ListView 上。
5. 在适配器中查询 SQLite 数据库并将数据绑定到 RecyclerView 或 ListView 上。
以下是一个简单的示例代码:
首先,在 AndroidManifest.xml 文件中添加以下代码:
```xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
```
然后,在 MainActivity.java 中创建一个 SQLiteOpenHelper 类:
```java
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "mydatabase.db";
private static final int DATABASE_VERSION = 1;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE mytable (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)");
db.execSQL("INSERT INTO mytable (name, age) VALUES ('John', 25)");
db.execSQL("INSERT INTO mytable (name, age) VALUES ('Mary', 30)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS mytable");
onCreate(db);
}
}
```
接着,在 MainActivity.java 中创建 RecyclerView 并设置适配器:
```java
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recyclerview);
adapter = new MyAdapter(this);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
}
@Override
protected void onResume() {
super.onResume();
adapter.notifyDataSetChanged();
}
}
```
然后,在 MyAdapter.java 中查询 SQLite 数据库并将数据绑定到 RecyclerView 上:
```java
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private Context context;
private Cursor cursor;
public MyAdapter(Context context) {
this.context = context;
cursor = getCursor();
}
private Cursor getCursor() {
DatabaseHelper dbHelper = new DatabaseHelper(context);
SQLiteDatabase db = dbHelper.getReadableDatabase();
return db.rawQuery("SELECT * FROM mytable", null);
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.list_item, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
if (!cursor.moveToPosition(position)) {
return;
}
String name = cursor.getString(cursor.getColumnIndex("name"));
int age = cursor.getInt(cursor.getColumnIndex("age"));
holder.nameTextView.setText(name);
holder.ageTextView.setText(String.valueOf(age));
}
@Override
public int getItemCount() {
return cursor.getCount();
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public TextView nameTextView;
public TextView ageTextView;
public ViewHolder(@NonNull View itemView) {
super(itemView);
nameTextView = itemView.findViewById(R.id.name_textview);
ageTextView = itemView.findViewById(R.id.age_textview);
}
}
}
```
最后,在 list_item.xml 中定义 RecyclerView 中的每个项目的布局:
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:orientation="vertical">
<TextView
android:id="@+id/name_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textStyle="bold"/>
<TextView
android:id="@+id/age_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp"/>
</LinearLayout>
```
这样就能在 Android 中显示 SQLite 中的数据了。
阅读全文