赞
踩
本人专注于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运行截图
五、核心代码
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。