我也是android上的小白,大体运行全部完成了,但是也有些不足,可能我分析的代码不是很准确,欢迎大家留言评论!一起进步一起学习。
这个密码日记本的开发中修改信息和加锁日记还没有头绪,没能写出来,不过我会尽快努力写出来的,一起分享给大家。
程序运行后页面截图
代码详解:
-
Activity文件夹中
-
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); } }
-
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,那么就执行该情况下的代