当前位置:   article > 正文

android课程设计-单词本(Android期末作业,Android课设,AndroidStudio毕业设计)

android课程设计

      本人专注于Android/鸿蒙原生app的开发,是多年的Android开发人员;希望我发布的此篇文件可以帮助到您;

文章末尾获取源码下载方式

一、单词本项目介绍
1:Splash/启动页面:app打开后会停留2秒后自动跳转

2:引导页面:app第一次打开时会出现引导页,左右滑动介绍app的功能等
3:注册模块,用户在使用app时可需要进行用户信息的注册
3:登录模块:用户成功注册后可进行app的登录
4:添加单词:用户可以添加自己的单词和解释释义
5:查看单词:用户可以在首页单词列表查看自己添加的单词和释义
6:删除单词:用户可以在首页单词列表长按单词进行删除操作
7:查询单词:用户可以通过首页的搜索框进行单词的搜索

8:收藏单词:用户可以收藏和取消收藏单词

二、运行环境

开发工具:Android studio3.5.2(下载地址:https://dl.google.com/dl/android/studio/install/3.5.2.0/android-studio-ide-191.5977832-windows.exe

开发语言:java jdk1.7

运行:逍遥模拟器或者Android studio自带的模拟器
 

三、APP运行截图

四、APP运行视频

Android单词本、Android课设、毕设、Android studio_哔哩哔哩_bilibili基于Android平台的单词本app,使用SQLite数据库存储用户信息和单词信息,开发工具为Android studio3.5.2(https://dl.google.com/dl/android/studio/install/3.5.2.0/android-studio-ide-191.5977832-windows.exe),开发语言为Java,查询单词使用到了OKHttp网络请求API接口, 视频播放量 197、弹幕量 0、点赞数 0、投硬币枚数 0、收藏人数 1、转发人数 0, 视频作者 本源来芩, 作者简介 ,相关视频:android studio安卓源码app源码课程表程序开发大作业成品毕设期末课设java,Android菜谱美食分享、SQLite数据库、毕设、课设,Android运动健身APP、课设毕设、安卓地图运动轨迹项目实战,Android课设 毕设 安卓记账本项目实战,Android安卓期末大作业,图书管理app,源码+报告,Android安卓期末大作业,线上花店app,源码+报告 远程调试 Android Studio,[tiktok]安卓国际版抖音下载 无需拔卡 超多漂亮妹子,冒死上传(已被开除)!花了三千块在某站买的刘彬单词记忆。每天一遍,轻松掌握6000词,【背单词】词根词缀背词大法(重点词汇)这个方法一天能背300个单词,冒死上传(已被开除)!花了五千块在某站买的刘彬单词记忆。每天一遍,轻松掌握6000词,【背单词】词根词缀背词大法(重点词汇)这个方法一天能背300个单词,小米6刷iOS成功icon-default.png?t=N7T8https://www.bilibili.com/video/BV1DD421G7R7/?spm_id_from=333.999.0.0&vd_source=6e0fdd0dd2cb74bb4d96d4dd6e013636

五、核心代码
1、登录注册

public class LoginActivity extends AppCompatActivity {
    private EditText accountEdit, passwordEdit;
    private Button loginBtn;
    private TextView registerTv;
    private UserDao userDao;

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


        userDao = new UserDao(this);
        accountEdit = findViewById(R.id.account_edit);
        passwordEdit = findViewById(R.id.password_edit);
        loginBtn = findViewById(R.id.login_btn);
        registerTv = findViewById(R.id.register_tv);

        accountEdit.setText(SharedPreferenceUtil.getAccount());
        passwordEdit.setText(SharedPreferenceUtil.getPwd());


        loginBtn.setOnClickListener(v -> {
            String account = accountEdit.getText().toString();
            String password = passwordEdit.getText().toString();

            if (TextUtils.isEmpty(account)) {
                Toast.makeText(LoginActivity.this, "请输入账号", Toast.LENGTH_SHORT).show();
                return;
            }
            if (TextUtils.isEmpty(password)) {
                Toast.makeText(LoginActivity.this, "请输入密码", Toast.LENGTH_SHORT).show();
                return;
            }

            User user = null;
            List<User> eeList = userDao.selectSQL();
            if (eeList != null) {
                for (User e : eeList) {
                    if (e.getAccount().equals(account)) {
                        user = e;
                        break;
                    }
                }
            }
            if (user == null) {
                Toast.makeText(this, "该账号未注册", Toast.LENGTH_SHORT).show();
            } else {
                if (password.equals(user.getPassword())) {
                    SharedPreferenceUtil.setAccount(account);
                    SharedPreferenceUtil.setPwd(password);
                    MyApplication.getInstance().setUser(user);
                    Toast.makeText(this, "登录成功!", Toast.LENGTH_SHORT).show();
                    startActivity(new Intent(LoginActivity.this, MainActivity.class));
                    finish();
                } else {
                    Toast.makeText(this, "密码输入错误!", Toast.LENGTH_SHORT).show();
                }
            }

        });

        registerTv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(LoginActivity.this, RegisterActivity.class));
            }
        });

    }
}

public class RegisterActivity extends AppCompatActivity {
    private EditText accountEdit,passwordEdit,checkEdit;
    private Button loginBtn;
    private TextView backTv;
    private UserDao userDao;

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

        userDao = new UserDao(this);
        accountEdit = findViewById(R.id.account_edit);
        passwordEdit = findViewById(R.id.password_edit);
        checkEdit = findViewById(R.id.check_password_edit);
        loginBtn = findViewById(R.id.login_btn);
        backTv = findViewById(R.id.back_btn);

        backTv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });


        loginBtn.setOnClickListener(v -> {
            String account = accountEdit.getText().toString();
            String password = passwordEdit.getText().toString();
            String checkPassword = checkEdit.getText().toString();


            if (TextUtils.isEmpty(account)){
                Toast.makeText(RegisterActivity.this, "请输入账号", Toast.LENGTH_SHORT).show();
                return;
            }
            if (TextUtils.isEmpty(password)){
                Toast.makeText(RegisterActivity.this, "请输入密码", Toast.LENGTH_SHORT).show();
                return;
            }
            if (TextUtils.isEmpty(checkPassword)){
                Toast.makeText(RegisterActivity.this, "请再次输入密码", Toast.LENGTH_SHORT).show();
                return;
            }
            if (!checkPassword.equals(password)){
                Toast.makeText(RegisterActivity.this, "两次输入的密码不一致", Toast.LENGTH_SHORT).show();
                return;
            }

            User user = userDao.queryItem(account);
            if (user == null){
                user = new User();
                user.setAccount(account);
                user.setPassword(password);
                if (userDao.addSQL(user) > 0){
                    Toast.makeText(this, "账号注册成功!", Toast.LENGTH_SHORT).show();
                    finish();
                }else {

                }

            }else {
                Toast.makeText(this, "该账号已被注册!", Toast.LENGTH_SHORT).show();
            }

        });


    }
}

2、添加单词

public class AddActivity extends AppCompatActivity {
    private ImageView imageViewBack;
    private EditText wordEdit, traEdit;
    private TextView addTv, collectionTv;
    private EntriesDao entriesDao;
    private int position;
    private Entries entries;
    private String currentAccount = SharedPreferenceUtil.getAccount();

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

        position = getIntent().getIntExtra("position", 0);
        entries = (Entries) getIntent().getSerializableExtra("data");


        entriesDao = new EntriesDao(this);

        collectionTv = findViewById(R.id.collection_tv);
        wordEdit = findViewById(R.id.word_edit);
        traEdit = findViewById(R.id.trad_edit);
        imageViewBack = findViewById(R.id.back_img);
        addTv = findViewById(R.id.add_btn);


        if (entries != null) {
            wordEdit.setText(entries.getEntry());
            traEdit.setText(entries.getExplain());
            wordEdit.setEnabled(false);

            String collectiontStr = entries.getCollections();
            if (TextUtils.isEmpty(collectiontStr)) {
                collectionTv.setText("收藏");
            } else {
                if (collectiontStr.contains(currentAccount)) {
                    collectionTv.setText("取消收藏");
                }

            }

            collectionTv.setVisibility(View.VISIBLE);
            addTv.setText("确定修改");
        }

        addTv.setOnClickListener(v -> {
            String entry = wordEdit.getText().toString();
            String explain = traEdit.getText().toString();
            if (TextUtils.isEmpty(explain)) {
                Toast.makeText(AddActivity.this, "请输入单词", Toast.LENGTH_SHORT).show();
                return;
            }
            if (TextUtils.isEmpty(entry)) {
                Toast.makeText(AddActivity.this, "请输入释义", Toast.LENGTH_SHORT).show();
                return;
            }
            if (entries == null) {
                List<Entries> eeList = entriesDao.selectSQL();
                if (eeList != null) {
                    for (Entries e : eeList) {
                        if (e.getEntry().equals(entry)) {
                            entries = e;
                            break;
                        }
                    }
                }
                if (entries == null) {
                    entries = new Entries();
                    entries.setEntry(entry);
                    entries.setExplain(explain);
                    if (entriesDao.addSQL(entries) > 0) {
                        Toast.makeText(AddActivity.this, "添加成功", Toast.LENGTH_SHORT).show();
                        setResult(RESULT_OK, new Intent().putExtra("data", entries));
                        finish();
                    } else {

                    }
                } else {
                    Toast.makeText(AddActivity.this, "该单词已存在", Toast.LENGTH_SHORT).show();

                }
            } else {
                entries.setExplain(explain);
                if (entriesDao.updateData(entries) > 0) {
                    setResult(RESULT_OK, new Intent().putExtra("data", entries).putExtra("position", position));
                    Toast.makeText(AddActivity.this, "修改成功", Toast.LENGTH_SHORT).show();
                    finish();
                }
            }

        });

        collectionTv.setOnClickListener(v -> {
            String c = collectionTv.getText().toString();
            if (entries != null) {
                String collectiontStr = entries.getCollections();
                if ("取消收藏".equals(c)) {
                    collectionTv.setText("收藏");
                    if (!TextUtils.isEmpty(collectiontStr)) {
                        String[] array = collectiontStr.split(",");
                        StringBuilder stringBuilder = new StringBuilder();
                        for (String sss : array) {
                            if (!sss.equals(currentAccount)) {
                                if (stringBuilder.length() == 0) {
                                    stringBuilder.append(sss);
                                } else {
                                    stringBuilder.append(",").append(sss);
                                }
                            }
                        }
                        entries.setCollections(stringBuilder.toString());
                    }
                    Toast.makeText(this, "已取消收藏", Toast.LENGTH_SHORT).show();
                } else {
                    if (!TextUtils.isEmpty(collectiontStr)) {
                        entries.setCollections(collectiontStr + "," + currentAccount);
                    } else {
                        entries.setCollections(currentAccount);
                    }
                    collectionTv.setText("取消收藏");
                    Toast.makeText(this, "收藏成功", Toast.LENGTH_SHORT).show();

                }
                entriesDao.updateData(entries);
            }
        });

        imageViewBack.setOnClickListener(v -> {
            setResult(RESULT_OK);
            finish();
        });
    }
}


五、源码获取
链接: https://pan.baidu.com/s/1xmdc8P89BA6465s1jGVGFQ?pwd=d2pw 提取码: d2pw
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/865875
推荐阅读
相关标签
  

闽ICP备14008679号