編輯:關於Android編程
模塊實現前,先說兩點:
第一點、登陸模塊的實現,是多數APP的基礎功能。
第二點、數據庫用的不是MySQL,Oracle等,Android項目,多數還是會用到SQLite.
現在開始:
第一步、新建一個Activity(筆者為了闡明清楚,新建了一個module)
點擊Finish.
第二步、先編寫layout中的activity_login.xml文件(登陸界面形色各異,筆者不做修飾,只是最簡單的TextView,EditText,Button):
activity_login.xml源代碼如下:
第三步、新建兩個package,分別是sqlite和dao,如下圖:
第四步、在sqlite包中(類似於工具類),新建一個Java Class,叫:SQLiteHelper.java。代碼如下:
package com.dujiang.MyWealth.sqlite; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; /** * Created by Dujiang0311 on 2017/1/21. */ public class SQLiteHelper extends SQLiteOpenHelper{ /*SQLiteHelper的四個參數,上下文,數據庫名字,null,版本號(任意數字)*/ public SQLiteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); } /*上面那個太過復雜,所以需要重載一個簡單的方法:通過構造方法,完成數據庫的創建*/ public SQLiteHelper(Context context){ super(context,"mydb",null,1); } /*通過OnCreate方法,實現數據表的創建*/ @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table login (username varchar2(20) , pwd varchar2(20))"); db.execSQL("insert into login values('admin','admin')"); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { } }
第五步、dao層裡面新建一個LoginDao.java文件:
package com.example.login.dao; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import com.dujiang.MyWealth.sqlite.SQLiteHelper; /** * Created by Dujiang0311 on 2017/1/21. */ public class LoginDao { private SQLiteHelper sqLiteHelper; private SQLiteDatabase db ; public LoginDao(Context context){ sqLiteHelper = new SQLiteHelper(context); } /*登陸功能*/ public boolean login(String username , String pwd){ // 當數據庫中的數據進行查詢操作的時候,需要調用getReadableDatabase() db = sqLiteHelper.getReadableDatabase(); Cursor cursor = db.query("login", new String[]{"username"},"username = ? and pwd = ?",new String[]{username,pwd}, null,null,null); if (cursor.moveToNext()){ cursor.close(); db.close(); return true; }else { return false; } } }
第六步、在LoginActivity中調用SQLite以及使用相關控件:
package com.example.login; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.example.login.MainActivity; import com.example.login.R; import com.example.login.dao.LoginDao; public class LoginActivity extends AppCompatActivity { //定義控件 private EditText username , pwd ; private Button loginbtn; private LoginDao dao; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); dao = new LoginDao(this) ; //獲取控件 username = (EditText) findViewById(R.id.activity_login_et_username); pwd = (EditText) findViewById(R.id.activity_login_et_pwd); loginbtn = (Button) findViewById(R.id.activity_login_btn); loginbtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //判斷登陸成功與否 if(dao.login(username.getText().toString(),pwd.getText().toString())){ //登陸成功頁面跳轉 Intent intent = new Intent(LoginActivity.this, MainActivity.class); startActivity(intent); }else { //登陸失敗,顯示提示信息 Toast.makeText(LoginActivity.this, "用戶名和密碼錯誤", Toast.LENGTH_SHORT).show(); } } }); } }
第七步、為了在打開APP時第一個就是登陸界面,所以需要配置AndroidManifest.xml文件:
將
剪切,放到.LoginActivity中:
以上就完成了基本的登陸功能實現,數據庫中有的用戶名可以登陸成功,並且跳轉到主界面,沒有的,則不能登陸。演示如下:
輸入錯誤的用戶名或者密碼:
輸入正確的用戶名密碼(admin,admin):
在新建一個Android項目時,在res目錄下會自動生成幾個drawable文件夾,drawable-ldpi,drawable-mdpi,drawable-hdpi,一
紐扣電池的型號通常在紐扣電池的背面由字母和阿拉伯數字組成,了解一些基本的電池型號知識對生活很有幫助,因為我們日常見到的兒童玩具、電路主板、電子表、遙控器等電
系統啟動過程圖: Framework層所有的Service都是運行在SystemServer進程中;SystemServer進程是由Zygote進程創建。 S
實現效果如下: 因為是通知欄,那麼點擊後如何傳遞呢?定義一個廣播,當點擊的時候就發送此廣播,注冊此廣播。 收到廣播後就取消下載。關鍵代碼在這裡。 Bro