以下是一个使用SQLite数据库加载RecyclerView,并在EditText中输入一个单词的Android Studio示例代码:
dependencies {
implementation 'androidx.recyclerview:recyclerview:1.2.1'
implementation 'androidx.sqlite:sqlite:2.1.0'
}
Word
的Java类,用于表示数据库中的单词:public class Word {
private int id;
private String word;
public Word(int id, String word) {
this.id = id;
this.word = word;
}
public int getId() {
return id;
}
public String getWord() {
return word;
}
}
DatabaseHelper
的Java类,用于管理SQLite数据库:public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "words.db";
private static final int DATABASE_VERSION = 1;
private static final String TABLE_NAME = "words";
private static final String COLUMN_ID = "id";
private static final String COLUMN_WORD = "word";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String createTable = "CREATE TABLE " + TABLE_NAME + " (" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_WORD + " TEXT)";
db.execSQL(createTable);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
public void insertWord(String word) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COLUMN_WORD, word);
db.insert(TABLE_NAME, null, contentValues);
db.close();
}
public List getAllWords() {
List wordList = new ArrayList<>();
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
if (cursor.moveToFirst()) {
do {
int id = cursor.getInt(cursor.getColumnIndex(COLUMN_ID));
String word = cursor.getString(cursor.getColumnIndex(COLUMN_WORD));
Word newWord = new Word(id, word);
wordList.add(newWord);
} while (cursor.moveToNext());
}
cursor.close();
db.close();
return wordList;
}
}
WordAdapter
的Java类,用于将单词列表显示在RecyclerView中:public class WordAdapter extends RecyclerView.Adapter {
private List wordList;
public class WordViewHolder extends RecyclerView.ViewHolder {
public TextView wordTextView;
public WordViewHolder(View view) {
super(view);
wordTextView = view.findViewById(R.id.wordTextView);
}
}
public WordAdapter(List wordList) {
this.wordList = wordList;
}
@Override
public WordViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.word_item, parent, false);
return new WordViewHolder(itemView);
}
@Override
public void onBindViewHolder(WordViewHolder holder, int position) {
Word word = wordList.get(position);
holder.wordTextView.setText(word.getWord());
}
@Override
public int getItemCount() {
return wordList.size();
}
}
res/layout
目录下创建一个名为activity_main.xml
的XML布局文件,用于显示RecyclerView和EditText:
res/layout
目录下创建一个名为`word_item