android studio中开发密码记事本(含有最全套的代码解析,以及技术分析)

我也是android上的小白,大体运行全部完成了,但是也有些不足,可能我分析的代码不是很准确,欢迎大家留言评论!一起进步一起学习。

这个密码日记本的开发中修改信息和加锁日记还没有头绪,没能写出来,不过我会尽快努力写出来的,一起分享给大家。

程序运行后页面截图

                          

                             

                          

 

 

代码详解:

  • Activity文件夹中

  1. welcomeActivity中代码解释

 protected void onCreate(@Nullable Bundle savedInstanceState) {
//super.onCreate(savedInstanceState)是调用父类Activity的onCreate()方法。
            super.onCreate(savedInstanceState);
//启用窗体的扩展特性。参数是Window类中定义的常量。
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//setContentView就是设置一个Activity的显示界面
        setContentView(R.layout.welcome_layout);
//new Handler().postDelayed(new Runnable(){})延迟intent跳转
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
//WelcomeActivity页面跳转到LoginActivity页面
                startActivity(new Intent(WeclomeActivity.this, LoginActivity.class));
                finish();
            }
        }, DELAY_TIME);
    }
}
  1. LoginActivity中代码详解

package com.example.mynotepade.activity;
//导的包就不一一介绍了
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.annotation.Nullable;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.example.mynotepade.R;
import com.example.mynotepade.db.DBHelper;

import static com.example.mynotepade.db.DBHelper.PASSWORD;
import static com.example.mynotepade.db.DBHelper.PHONE;
import static com.example.mynotepade.db.DBHelper.USER_TABLE;

public class LoginActivity extends Activity implements View.OnClickListener {

//私有化定义
    private static final int REQUEST_CODE_GO_TO_REGIST = 100;
    private EditText edit_account, edit_password;
    private Button btn_signIn, btn_signUp;
    private String account, password;
    private CheckBox box_rememberpsw;
    private DBHelper dbHelper = new DBHelper(this);
    private SharedPreferences sharedPreferences;
    private SharedPreferences.Editor editor;
    private static final long DELAY_TIME = 2000L;

    @Override
//与WelcomeActivity中的内容相似,可以参考
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.login_layout);
//调用下文中的init()方法
        init();
    }
//
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//requestCode请求码
        switch (requestCode) {
//判断注册情况
            case REQUEST_CODE_GO_TO_REGIST:
//如果注册成功RESULT_OK,就执行后边代码
                if (resultCode == RESULT_OK) {
//接受从终端获取的输入值,phone 和password
                    String name = data.getStringExtra("Phone");
                    String psw = data.getStringExtra("Password");
//把电话号和对应的密码存起来,可以再记住密码时使用。
                    edit_account.setText(name);
                    edit_password.setText(psw);
                }
                break;
        }
    }

    private void init() {
//获取电话号文本
        edit_account = (EditText) findViewById(R.id.phone_text);
        edit_account.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
//定义一个方法
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                return false;//如果返回false隐藏软键盘
            }
        });
//接收从layout中获取的对应的值
        edit_password = (EditText) findViewById(R.id.password_text);
        box_rememberpsw = (CheckBox) findViewById(R.id.remember_pass);
        box_rememberpsw = (CheckBox) findViewById(R.id.remember_pass);
        btn_signIn = (Button) findViewById(R.id.signIn_btn);
        btn_signUp = (Button) findViewById(R.id.signUp_btn);
//setOnClickListener传入的是 OnClickListener 类型的数据
        btn_signIn.setOnClickListener(this);
        btn_signUp.setOnClickListener(this);
//自定义的一些偏好设置用getSharedPreferences来获取
        sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
//记住密码按钮自定义设置
        boolean isRemember = sharedPreferences.getBoolean("remember_password", false);
//判断记住密码这个按钮的值是不是不为空
        if (isRemember) {
            String name = sharedPreferences.getString("Account", "");
            String psw = sharedPreferences.getString("Password", "");
            edit_account.setText(name);
            edit_password.setText(psw);
//设置是否记住密码按钮
            box_rememberpsw.setChecked(true);
        }
    }


//添加方法onClick
    @Override
//view是android包里的类文件
    public void onClick(View view) {
//从视图文件里拿到的值去分情况
        switch (view.getId()) {
//如果拿到的值是R.id.signUp_btn,那么就执行该情况下的代码
            case R.id.signUp_btn:
//页面跳转LoginActivity到RegisterActivity
                Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
                startActivityForResult(intent, REQUEST_CODE_GO_TO_REGIST);
                break;
//如果拿到的值是R.id.signIn_btn,那么就执行该情况下的代
  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
本项目是一个基于安卓的日记本项目源码,本站之前介绍过很多关于日记本/备忘录/便签这一类型的项目源码。进入应用首先进入欢迎界面会有一个开门效果,点击”进入日记”即可进入主界面,在主界面可以点击进入”写日记”、”查看日记”、”搜索日记”、”日记加密”、”退出”以及右下角path菜单按钮查看更多。进入”写日记”界面即可写日记并且可以选择当天天气情况,写完日记以后不需要其他操作直接点返回键就可以自动保存内容并回到主界面。进入”查看日记”界面即可查看写过的日记,若没有写过日记,则提示用户写日记。进入”搜索日记”界面即可对日记内容进行搜索,搜索日记功能可以根据关键字模糊搜索并且可以即时出现结果。进入”日记加密”界面即可对日记进行加密,密码保护部分可以设置日志的数字密码或者图形密码,设置完成退出应用以后再次打开应用就会出现要求输入数字密码或者绘制图像密码的界面。点击右下方按钮会弹出弧形菜单,可进入相应操作。如关于、帮助、夜间模式、换背景、设置提醒、意见反馈。”换背景”操作,手动换屏,长按图片或者按菜单键按提示操作即可。”设置提醒”可以设置提醒写日记的时间。不得不说在本项目的开发过程作者考虑的情况很周全,对用户体验方面也下了很大功夫。例如无需手动保存、可以选择天气、带有密码设置、即时搜索出结果等等功能都可以给使用者提供不错的用户体验。
Android Studio开发一个简单的记事本应用,通常涉及到创建一个新的Android项目,然后使用Java或Kotlin作为主要的编程语言。以下是一个简化的步骤和关键代码片段: 1. **初始化项目**: - 创建新项目 -> 选择"Empty Activity"模板 -> 填写项目名称、包名等信息。 2. **添加UI**: - 在`activity_main.xml`布局文件,创建一个`EditText`用于输入文本,以及一个`RecyclerView`来显示记事本内容(如果想实现列表展示)。 ```xml <EditText android:id="@+id/et_note_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入笔记" /> <ListView android:id="@+id/lv_notes" <!-- 这里假设是ListView,如果是RecyclerView则用rv_notes --> android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 3. **编写数据模型**: 创建一个`Note`类,包含标题和内容属性。 ```java public class Note { private String title; private String content; // 构造函数、getter/setter等... } ``` 4. **添加记事功能**: - 在`MainActivity.java`或`FragmentActivity.kt`,处理输入框的`OnEditorActionListener`来保存笔记。 ```java EditText editText = findViewById(R.id.et_note_text); editText.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_DONE) { String noteText = editText.getText().toString(); // 这里可以将noteText添加到数据库或列表 saveNote(noteText); return true; } return false; } }); ``` 5. **加载或显示笔记**: - 如果有存储机制,如SQLite数据库,你需要从数据库获取笔记,并在适当时刷新`RecyclerView`或`ListView`。 6. **RecyclerView示例**: - 使用`RecyclerView.Adapter`和`RecyclerView.ViewHolder`来管理列表项。 ```java public class NoteAdapter extends RecyclerView.Adapter<NoteAdapter.NoteViewHolder> { private List<Note> notes; public NoteAdapter(List<Note> notes) { this.notes = notes; } // 其他方法,如 onCreateViewHolder、 onBindViewHolder 和 getItemCount() static class NoteViewHolder extends RecyclerView.ViewHolder { TextView titleTextView; TextView contentTextView; NoteViewHolder(View itemView) { super(itemView); titleTextView = itemView.findViewById(R.id.tv_note_title); contentTextView = itemView.findViewById(R.id.tv_note_content); } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值