小波Linux安卓Sqlite数据库实现用户登录注册,通俗易懂!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小波Linux安卓Sqlite数据库实现用户登录注册,通俗易懂!相关的知识,希望对你有一定的参考价值。

看了很多别人写的安卓SQlite数据的操作代码,都是浮云,瞎弄!一点也不通俗易懂,我觉得我写的不错,而且安卓项目也用上了,所以在博客园里保存分享一下!

 

一SQLiteHelper类是自动重载增删改查函数的,另外一个是自己定义的类,用Context传值。我用的是Fragment,用Activity的话吧getActivity()去掉!

实现了用户登录注册的功能!

http://www.cnblogs.com/xiaobo-Linux/ (小波)赵存档QQ463431476

public class mysqliteHelper extends SQLiteOpenHelper {

    //自定义访问sqlite
    public MySqliteHelper(Context context) {
        super(context, "userdb.db", null, 3);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
     //http://www.cnblogs.com/xiaobo-Linux/ (小波)赵存档QQ463431476
        db.execSQL("create table users(id int primary key ,name text,pwd text)");
          
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
        
    }
 
}

 

public class Userlogin extends Activity implements  OnClickListener{
    
       
       private MySqliteHelper helper;
       
       Button sign;  
       Button reg;
       
       String  name;
       String  mypwd;
       private EditText user;
       private EditText pwd;
       
      
   //http://www.cnblogs.com/xiaobo-Linux/ (小波)赵存档QQ463431476
 
   public void onCreate(Bundle savedInstanceState) {  
       super.onCreate(savedInstanceState);
       //设置状态栏颜色 
       getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
       getWindow().setStatusBarColor(getResources().getColor(R.color.StatusBar));   
       //设置actionbar颜色 
       ActionBar actionBar = getActionBar();
       actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#0099CC")));
       setContentView(R.layout.login);
       
       findViewById(R.id.button1).setOnClickListener(this);
       findViewById(R.id.button2).setOnClickListener(this);
       user = (EditText)findViewById(R.id.editText1);
       pwd=(EditText)findViewById(R.id.editText2);
     
   }  
 
   
 public void  insert()
 {
     

      helper = new MySqliteHelper(getApplicationContext());
      SQLiteDatabase db=helper.getWritableDatabase();    
      
      //查询一下,是否用户名重复
       String sql1 = "select * from users";
       Cursor cursor = db.rawQuery(sql1, null);
       while (cursor.moveToNext()) {
          //第一列为id
          name =  cursor.getString(1); //获取第2列的值,第一列的索引从0开始
          mypwd = cursor.getString(2);//获取第3列的值
         
      }
      
     if((user.getText().toString().equals(name)))
         {
                Toast.makeText(this, "已存在此用户,请重新注册", Toast.LENGTH_SHORT).show(); 
         }
         else
          {
             String sql2 = "insert into users(name,pwd) values (‘"+user.getText().toString()+"‘,‘"+pwd.getText().toString()+"‘)";
                db.execSQL(sql2);
               Toast.makeText(this, "注册成功!", Toast.LENGTH_SHORT).show(); 
          }
     
 }
 
  public void select()
 {
     
      helper = new MySqliteHelper(getApplicationContext());
      SQLiteDatabase db=helper.getWritableDatabase();
        
      String sql = "select * from users";
      
      Cursor cursor = db.rawQuery(sql, null);
      while (cursor.moveToNext()) {
          //第一列为id
          name =  cursor.getString(1); //获取第2列的值,第一列的索引从0开始
          mypwd = cursor.getString(2);//获取第3列的值
         
      }
      
      if((user.getText().toString().equals(name))&&(pwd.getText().toString().equals(mypwd)))
         {
                Toast.makeText(this, "用户验证成功", Toast.LENGTH_SHORT).show(); 
                Intent MainActivity = new Intent();
                MainActivity .setClass(this,MainActivity.class);
                  this.startActivity(MainActivity);  
                  finish();//退出
         }
         else
          {
                Toast.makeText(this, "账号或者密码错误,请重新输入", Toast.LENGTH_SHORT).show();  
          }
      
                cursor.close();
                db.close();
                //Toast.makeText(this, "已经关闭数据库", Toast.LENGTH_SHORT).show();  
 }


@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
       switch(v.getId()){  
        case R.id.button1:  
            select();
         
            break;  
        case R.id.button2:  
            insert();
            break;  
         }
 
}
 
    

http://www.cnblogs.com/xiaobo-Linux/ (小波)赵存档QQ463431476

效果如下:

技术分享

以上是关于小波Linux安卓Sqlite数据库实现用户登录注册,通俗易懂!的主要内容,如果未能解决你的问题,请参考以下文章

在安卓应用中存储用户名和密码的最佳选择

AndroidStudio-实现登录界面(数据存储在SQLite)

四登录注册页功能实现《iVX低代码/无代码个人博客制作》

安卓笔记——SQLite数据库

linux 常用指令

安卓数据库的实现与应用