package com.example.qqqq; import android.annotation.SuppressLint; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import androidx.annotation.Nullable; import java.util.ArrayList; import java.util.List; public class DBHelper extends SQLiteOpenHelper { public static final String DATABASE_NAME = "my_database.db"; public static final int DATABASE_VERSION = 1; public static final String TABLE_NAME = "my_table"; public static final String COLUMN_ID = "id"; public static final String COLUMN_NAME = "name"; public DBHelper(Context context) { super(context, DATABASE_NAME , null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "(" + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + COLUMN_NAME + " TEXT" + ")"; db.execSQL(CREATE_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); onCreate(db); } public void insertData(String name) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(COLUMN_NAME, name); db.insert(TABLE_NAME, null, values); db.close(); } @SuppressLint("Range") public List<String> getAllData() { List<String> data = new ArrayList<String>(); SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_NAME, null); if (cursor.moveToFirst()) { do { data.add(cursor.getString(cursor.getColumnIndex(COLUMN_NAME))); } while (cursor.moveToNext()); } cursor.close(); db.close(); return data; } }
时间: 2024-04-27 07:22:38 浏览: 8
这是一个使用 SQLite 数据库的 Android 应用程序的 DBHelper 类。它定义了数据库名称,版本和表的名称以及各个列的名称。它还定义了数据库的创建和更新方法以及插入和获取数据的方法。在 onCreate 方法中,会创建一个名为 TABLE_NAME 的表,该表包含两个列:一个是自增的 ID,另一个是名称。在 insertData 方法中,将一个新行插入到表中,该行包含一个名称值。在 getAllData 方法中,会从表中检索所有行,并将其添加到一个字符串列表中,然后返回该列表。
相关问题
import android.annotation.SuppressLint;
这是一个 Android 开发中常用的导入语句,用于导入 Android 平台中的注解类 `SuppressLint`。该类用于告诉 Lint 工具,忽略指定代码段的某些特定警告或错误提示。通过使用 `SuppressLint` 注解,我们可以在代码中标记出某些被 Lint 工具认为不规范的使用方法,从而避免 Lint 工具在编译或运行时产生不必要的警告或错误提示。
import android.support.annotation.requiresapi
import android.support.annotation.requiresapi 是Android开发中的一个注解,它用于指定某个方法或类需要依赖特定的API级别。
在Android开发中,每个API级别都代表了一组特定的功能和特性。当我们使用某个功能或特性时,需要确保当前设备的API级别达到或超过所要求的API级别,否则会导致应用在较低API级别的设备上出现错误或崩溃。
@requiresapi注解的作用是强制编译器在编译时检查所标注的方法或类使用的API级别是否满足要求。如果不满足要求,编译器会给出相应的错误提示。
在代码中使用@requiresapi注解的示例:
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public void drawOnCanvas(Canvas canvas) {
...
}
上述代码中的drawOnCanvas方法使用了Canvas类,该类在API级别21(即Android 5.0 Lollipop)才被引入。通过在方法前加上@RequiresApi注解并指定所需的API级别,可以确保只有在达到或超过API级别21的设备上才会调用该方法。
通过使用@requiresapi注解,我们可以更加灵活地管理不同API级别的设备,并避免在低版本设备上出现不支持的API导致的问题。