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 + " = ?";