您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關使用Android SQLite數據庫連接如何實現登錄功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
布局文件
border.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 布局的背景顏色--> <!-- <solid android:color="#FFFFFF" />--> <!-- 邊框線的粗細和顏色--> <stroke android:width="0.01dp" android:color="#000" /> <padding android:bottom="5dp" android:left="5dp" android:right="5dp" android:top="5dp" /> <!-- 圓角--> <corners android:radius="5dp" /> </shape>
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <LinearLayout android:padding="5dp" android:background="@drawable/border" android:orientation="vertical" android:layout_gravity="center_horizontal" android:layout_width="360dp" android:layout_height="112dp"> <LinearLayout android:orientation="horizontal" android:layout_gravity="center_horizontal" android:layout_width="match_parent" android:layout_height="50dp"> <ImageView android:layout_marginRight="15dp" android:layout_gravity="center_vertical" android:layout_width="30dp" android:layout_height="30dp" app:srcCompat="@drawable/usn" android:id="@+id/usn"/> <!-- android:background="@null" 去掉下劃線 --> <EditText android:singleLine="true" android:background="@null" android:layout_width="match_parent" android:layout_height="match_parent" android:inputType="text" android:hint="用戶名" android:ems="10" android:id="@+id/username"/> </LinearLayout> <!-- 水平線--> <View android:layout_height="0.5dip" android:background="#686868" android:layout_width="match_parent"/> <LinearLayout android:orientation="horizontal" android:layout_gravity="center_horizontal" android:layout_width="match_parent" android:layout_height="50dp"> <ImageView android:layout_marginRight="15dp" android:layout_gravity="center_vertical" android:layout_width="30dp" android:layout_height="30dp" app:srcCompat="@drawable/pwd" android:id="@+id/密碼"/> <EditText android:singleLine="true" android:background="@null" android:layout_width="match_parent" android:layout_height="match_parent" android:inputType="textPassword" android:hint="密碼" android:ems="10" android:id="@+id/password"/> </LinearLayout> </LinearLayout> <Button android:layout_gravity="center_horizontal" android:background="#EF8D89" android:layout_marginTop="20dp" android:text="登 錄" android:onClick="userLogin" android:layout_width="360dp" android:layout_height="wrap_content" android:id="@+id/login"/> </android.support.constraint.ConstraintLayout>
MainActivity類
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ //訪問數據庫的類 SQLiteDatabase db; //定義常量,作為消息的key public final static String MESSAGE_KEY="com.android2"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /** * (參數)1、context MainActivity * 2、name 數據庫名 * 3、 * 4、版本號 */ final DatabaseHelper databaseHelper = new DatabaseHelper(this,"emis.db",null,2); //獲得讀取數據庫權限 db = databaseHelper.getReadableDatabase(); setContentView(R.layout.activity_main); } /*響應*/ private void userLogin() { EditText et1 = findViewById(R.id.username); String username = et1.getText().toString(); EditText et2 = findViewById(R.id.password); String password = et2.getText().toString(); //游標類Cursor 負責生成讀寫數據庫的對象 Cursor cursor = db.rawQuery("SELECT * FROM users WHERE username=? AND password=?",new String[]{username,password}); //數據庫中有此數據,登錄成功 if(cursor.getCount()>0){ Intent intent = new Intent(this,ReceiveActivity.class); intent.putExtra(MESSAGE_KEY,username); startActivity(intent); } else{ Toast.makeText(MainActivity.this,"用戶名或密碼錯誤!",Toast.LENGTH_SHORT).show(); } } }
ReceiveActivity類及布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ReceiveActivity" > <TextView android:textSize="24dp" android:layout_gravity="center_vertical" android:id="@+id/output" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
package com.android02; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView; public class ReceiveActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_receive); //獲取intent引用 Intent intent = getIntent(); //以MESSAGE_KEY獲取獲取編輯框文字 String message = intent.getStringExtra(MainActivity.MESSAGE_KEY); //以id獲取TextView TextView textView = findViewById(R.id.output); //顯示message textView.setText("歡迎!"+message); } }
測試:
看完上述內容,你們對使用Android SQLite數據庫連接如何實現登錄功能有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。