作业修改(/_\)大怨种

DatabaseHelper.java:

package com.example.yourapp;

 

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

 

public class DatabaseHelper extends SQLiteOpenHelper {

 

    private static final String DATABASE_NAME = "words.db";

    private static final int DATABASE_VERSION = 1;

 

    public static final String TABLE_WORDS = "words";

    public static final String COLUMN_ID = "id";

    public static final String COLUMN_ENGLISH = "english";

    public static final String COLUMN_SYMBOL = "symbol";

    public static final String COLUMN_CHINESE = "chinese";

 

    private static final String TABLE_CREATE =

            "CREATE TABLE " + TABLE_WORDS + " (" +

                    COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +

                    COLUMN_ENGLISH + " NVARCHAR(50), " +

                    COLUMN_SYMBOL + " NVARCHAR(50), " +

                    COLUMN_CHINESE + " NVARCHAR(50));";

 

    public DatabaseHelper(Context context) {

        super(context, DATABASE_NAME, null, DATABASE_VERSION);

    }

 

    @Override

    public void onCreate(SQLiteDatabase db) {

        db.execSQL(TABLE_CREATE);

        // 插入一些单词

        db.execSQL("INSERT INTO " + TABLE_WORDS + " (" + COLUMN_ENGLISH + ", " + COLUMN_SYMBOL + ", " + COLUMN_CHINESE + ") VALUES ('apple', '[ˈæpəl]', '苹果');");

        db.execSQL("INSERT INTO " + TABLE_WORDS + " (" + COLUMN_ENGLISH + ", " + COLUMN_SYMBOL + ", " + COLUMN_CHINESE + ") VALUES ('banana', '[bəˈnænə]', '香蕉');");

        // 添加更多单词

    }

 

    @Override

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        db.execSQL("DROP TABLE IF EXISTS " + TABLE_WORDS);

        onCreate(db);

    }

}

MainActivity.java:

package com.example.yourapp;

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class MainActivity extends AppCompatActivity {

    private DatabaseHelper dbHelper;
    private SQLiteDatabase db;
    private List<String> words;
    private List<String> pronunciations;
    private List<String> meanings;
    private int currentIndex = -1;
    private int knownCount = 0;
    private int unknownCount = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        dbHelper = new DatabaseHelper(this);
        db = dbHelper.getReadableDatabase();

        words = new ArrayList<>();
        pronunciations = new ArrayList<>();
        meanings = new ArrayList<>();

        loadWords();

        Button buttonKnown = findViewById(R.id.button_known);
        Button buttonUnknown = findViewById(R.id.button_unknown);

        buttonKnown.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (currentIndex != -1) {
                    showMeaning();
                    knownCount++;
                }
            }
        });

        buttonUnknown.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (currentIndex != -1) {
                    showMeaning();
                    unknownCount++;
                }
            }
        });
    }

    private void loadWords() {
        Cursor cursor = db.query(DatabaseHelper.TABLE_WORDS, null, null, null, null, null, null);

        int englishIndex = cursor.getColumnIndex(DatabaseHelper.COLUMN_ENGLISH);
        int symbolIndex = cursor.getColumnIndex(DatabaseHelper.COLUMN_SYMBOL);
        int chineseIndex = cursor.getColumnIndex(DatabaseHelper.COLUMN_CHINESE);

        if (englishIndex == -1 || symbolIndex == -1 || chineseIndex == -1) {
            Toast.makeText(this, "Database column not found", Toast.LENGTH_SHORT).show();
            return;
        }

        while (cursor.moveToNext()) {
            words.add(cursor.getString(englishIndex));
            pronunciations.add(cursor.getString(symbolIndex));
            meanings.add(cursor.getString(chineseIndex));
        }
        cursor.close();
    }

    private void showMeaning() {
        TextView meaningView = findViewById(R.id.textView_meaning);
        meaningView.setText(meanings.get(currentIndex));
    }

    private void showNextWord() {
        if (words.size() > 0) {
            Random random = new Random();
            currentIndex = random.nextInt(words.size());
            TextView wordView = findViewById(R.id.textView_word);
            TextView pronunciationView = findViewById(R.id.textView_pronunciation);
            wordView.setText(words.get(currentIndex));
            pronunciationView.setText(pronunciations.get(currentIndex));
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main_menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.menu_start:
                showNextWord();
                return true;
            case R.id.menu_end:
                showResult();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

    private void showResult() {
        Toast.makeText(this, "认识的单词数量: " + knownCount + "\n不认识的单词数量: " + unknownCount, Toast.LENGTH_LONG).show();
    }
}
 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值