Android平台术语表开发流程
作为一名经验丰富的开发者,我将带领你完成Android平台术语表的开发。下面是整个开发流程的表格展示:
步骤 | 任务 | 代码 |
---|---|---|
1 | 创建Android项目 | android create project -n AndroidGlossary -p com.example.glossary -t android-29 |
2 | 设计界面布局 | activity_main.xml |
3 | 创建数据库表 | DatabaseHelper.java |
4 | 实现添加术语功能 | MainActivity.java |
5 | 实现显示术语列表功能 | MainActivity.java |
6 | 实现搜索术语功能 | MainActivity.java |
7 | 实现编辑和删除术语功能 | MainActivity.java |
1. 创建Android项目
首先,我们需要创建一个Android项目。可以使用Android Studio或者命令行工具进行创建。在命令行中使用以下命令创建一个名为"AndroidGlossary"的项目:
android create project -n AndroidGlossary -p com.example.glossary -t android-29
这个命令将创建一个包名为com.example.glossary
的Android项目,并使用Android 29作为目标SDK。
2. 设计界面布局
接下来,我们需要设计一个合适的界面布局来展示术语表。可以在res/layout
目录下创建一个名为activity_main.xml
的布局文件,并添加以下代码:
<LinearLayout
xmlns:android="
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- 添加术语的输入框 -->
<EditText
android:id="@+id/editTerm"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="输入术语"/>
<!-- 添加按钮 -->
<Button
android:id="@+id/btnAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="添加术语"/>
<!-- 术语列表 -->
<ListView
android:id="@+id/listTerms"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
这个布局包含一个输入框、一个添加按钮和一个用于展示术语列表的ListView。
3. 创建数据库表
在这个应用中,我们需要一个数据库来存储术语。我们可以使用SQLite数据库。创建一个名为DatabaseHelper
的Java类,并添加以下代码:
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "glossary.db";
private static final int DATABASE_VERSION = 1;
private static final String TABLE_TERMS = "terms";
private static final String COLUMN_ID = "_id";
private static final String COLUMN_TERM = "term";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String createTable = "CREATE TABLE " + TABLE_TERMS + " (" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_TERM + " TEXT NOT NULL)";
db.execSQL(createTable);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String dropTable = "DROP TABLE IF EXISTS " + TABLE_TERMS;
db.execSQL(dropTable);
onCreate(db);
}
// 添加术语
public long addTerm(String term) {
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_TERM, term);
return db.insert(TABLE_TERMS, null, values);
}
// 获取所有术语
public Cursor getAllTerms() {
SQLiteDatabase db = getReadableDatabase();
return db.query(TABLE_TERMS, null, null, null, null, null, null);
}
// 根据关键字搜索术语
public Cursor searchTerms(String keyword) {
SQLiteDatabase db = getReadableDatabase();
String selection = COLUMN_TERM + " LIKE ?";
String[] selectionArgs = { "%" + keyword + "%" };
return db.query(TABLE_TERMS, null, selection, selectionArgs, null, null, null);
}
// 根据ID更新术语
public int updateTerm(long id, String term) {
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_TERM, term);
String whereClause = COLUMN_ID + " = ?";