小波Linux安卓Sqlite資料庫實現用戶登錄註冊,通俗易懂!

来源:http://www.cnblogs.com/xiaobo-Linux/archive/2016/05/29/5540106.html
-Advertisement-
Play Games

看了很多別人寫的安卓SQlite數據的操作代碼,都是浮雲,瞎弄!一點也不通俗易懂,我覺得我寫的不錯,而且安卓項目也用上了,所以在博客園裡保存分享一下! 一SQLiteHelper類是自動重載增刪改查函數的,另外一個是自己定義的類,用Context傳值。我用的是Fragment,用Activity的話 ...


看了很多別人寫的安卓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

效果如下:


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 動畫 animate() 01.animate()方法的簡單使用 有些複雜的動畫通過之前學到的幾個動畫函數是不能夠實現,這時候就是強大的animate方法了。 操作一個元素執行3秒的淡入動畫,對比下一下2組動畫設置的區別。 顯而易見,animate方法更加靈活了,可以精確的控制樣式屬性從而執行動畫。 ...
  • LN :跟著W3School學HTML 007 內容參考自W3School [HTML 教程][1] HTML文本格式化 | 標簽 | 描述 | | | : | | `` | 定義粗體文本 | | `` | 定義大號字 | | `` | 定義著重文字 | | `` | 定義斜體字 | | `` | ...
  • 一.js的數據類型和變數 JavaScript 有六種數據類型。主要的類型有 number、string、object 以及 Boolean 類型,其他兩種類型為 null 和 undefined。 String 字元串類型:字元串是用單引號或雙引號來說明的。(使用單引號來輸入包含引號的字元串。)如 ...
  • 最近除了做業務,也在嘗試學習h5和移動端,在這個過程中,學到了很多,利用h5和canvas做了一個愛心魚的小游戲。 "點這裡去玩一下" PS: 貌似有點閃屏,親測多刷新兩下就好了==。代碼在本地跑都不會閃,放到博客里就閃了,我也不知道為什麼。。。回頭我再看看是什麼問題。 另外,我把代碼放到githu ...
  • 學習要點: 1.搜索區 2.插入大圖 3.搜索框 主講教師:李炎恢 本章主要開始使用學慣用 HTML5 和 CSS3 來構建 Web 頁面,第一個項目採用 PC 端固定佈局來實現。 一.搜索區 本節課,我們接著 header 頭部往下,來設計一塊搜索區。這個區域,可以是廣告大圖,也可以是用戶註冊,也 ...
  • 效果:http://hovertree.com/texiao/jquery/71/代碼如下: 轉自:http://hovertree.com/h/bjaf/n781jmfy.htm 特效彙總:http://www.cnblogs.com/roucheng/p/texiao.html ...
  • 大圖:http://images2015.cnblogs.com/blog/730765/201605/730765-20160529113743209-72994369.png ...
  • 1. PCH文件概述 PCH文件是一種預編譯頭文件(一般擴展名為.PCH),是把一個工程中較穩定的代碼預先編譯好放在一個文件(.PCH)里。這些預先編譯好的代碼可以是任何的C/C++代碼--甚至可以是inline函數,只它們在整個工程中是較為穩定的,即在工程開發過程中不會經常被修改的代碼。 在 Xc ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...