編輯:關於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資源圖片讀取機制
在新建一個Android項目時,在res目錄下會自動生成幾個drawable文件夾,drawable-ldpi,drawable-mdpi,drawable-hdpi,一
紐扣電池常見規格型號
紐扣電池的型號通常在紐扣電池的背面由字母和阿拉伯數字組成,了解一些基本的電池型號知識對生活很有幫助,因為我們日常見到的兒童玩具、電路主板、電子表、遙控器等電
android Watchdog 實現剖析
系統啟動過程圖: Framework層所有的Service都是運行在SystemServer進程中;SystemServer進程是由Zygote進程創建。 S
Android實現後台通知欄下載並可以取消的Demo
實現效果如下: 因為是通知欄,那麼點擊後如何傳遞呢?定義一個廣播,當點擊的時候就發送此廣播,注冊此廣播。 收到廣播後就取消下載。關鍵代碼在這裡。 Bro