Android 第十四課 使用LitePal添加數據(更新數據)

我們注意到當你登錄一個app,是不是需要先注冊呢?,所謂注冊,簡單地來理解是不是就是把輸入框中地數據傳入數據庫中呢?

這里我們設置簡單一點,注冊的信息只包括兩項,一項是用戶名,另一項是密碼。我們干脆建立一個表Driveruser。

在Android Studio 中新建一個java目錄下,新建一個表Driveruser,

內容如下:

public class Driveruser{

????private String Dtel;//注冊所用手機號

? ? private String Dpassword;注冊密碼

}

以及我們使用快捷鍵生成相應的getter和setter方法。這個Driveruser表就對應數據庫中的Driveruser表,其中每個字段分別對應了每一個列,這就是對象關系映最直觀的體驗。

但是注意,每次新建一個類,都需要將其加入到映射模型列表中,修改litepal.xml中的代碼,如下,

<litepal>

? ? ....

????? ? <list>

????????????? ? <mapping class= "com.example.testapp.Driveruser"

????????</list>

</litepal>


以上內容屬于建立數據庫的操作。言歸正傳,

使用LitePal來添加數據,操作非常簡單,

1、只需要創建出模型類的實例

2、再將所有要存儲的數據設置好。

3、最后再調用一下save()方法。

觀察所有的模型類,都是沒有繼承結構的,因為LitePal進行表管理操作時不需要模型類有任何的繼承結構,但是進行

CURD操作時就不行了,必須要繼承自DataSupport類才行,因此這里我們需要先把繼承結構給加上。修改Driveruser表中的代碼,如下:

private class Book extends DataSupport{

......

}


接著我們把輸入框中輸入的數據通過點擊按鈕傳入數據庫,修改RegisterActivity中的代碼:

package com.example.testappb;import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.provider.ContactsContract;
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 org.litepal.crud.DataSupport;import java.util.List;public class RegisterActivity extends AppCompatActivity {private EditText DtelEdit;//定義EditText類型的變量,用來存儲從輸入框中輸入的數據private EditText DpasswordEdit;private Button querenzhuce;//定義按鈕,private Button zhucefanhui;//聲明刪除信息private EditText edittext_shanchu;private Button   button_shanchu;private SQLiteOpenHelper dbHelper;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.register_layout);//獲取輸入框的實例DtelEdit = (EditText)findViewById(R.id.edittext_Dtel);DpasswordEdit = (EditText)findViewById(R.id.edittext_Dpassword);querenzhuce= (Button)findViewById(R.id.button_querenzhuce);zhucefanhui=(Button)findViewById(R.id.button_zhucefanhui);//設置返回登錄按鈕透明度querenzhuce.getBackground().setAlpha(50);querenzhuce.setOnClickListener(new View.OnClickListener() {@Override//按鈕點擊事件public void onClick(View view) {String dteledit = DtelEdit.getText().toString();//將數據框中輸入的數據用toString()轉化為String。String dpasswordedit = DpasswordEdit.getText().toString();if(dteledit.equals("")|| dpasswordedit.equals("") ){//異常判斷Toast.makeText(RegisterActivity.this, "手機號或密碼為空", Toast.LENGTH_SHORT).show();return;}List<Driveruser> driveruers = DataSupport.findAll(Driveruser.class);for(Driveruser driveruser:driveruers) {if ((driveruser.getDtel().toString()).equals(dteledit) && (driveruser.getDpassword().toString()).equals(dpasswordedit)) {Toast.makeText(RegisterActivity.this,"手機號不可重復注冊",Toast.LENGTH_SHORT).show();return;}} Driveruser driveruser_2 = new Driveruser();//首先創造了一個Driveruser的實例。driveruser_2.setDtel(dteledit);//使用set方法對數據進行設置driveruser_2.setDpassword(dpasswordedit);driveruser_2.save();//使用save()保存。save方法來源于DataSupport中繼承而來的。Toast.makeText(RegisterActivity.this, "注冊成功", Toast.LENGTH_SHORT).show();}});zhucefanhui.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = new Intent(RegisterActivity.this,MainActivity.class);startActivity(intent);}});edittext_shanchu = (EditText)findViewById(R.id.edittext_shanchu);button_shanchu = (Button)findViewById(R.id.button_shanchu);button_shanchu.setOnClickListener(new View.OnClickListener() {//獲取輸入的信息后轉化為字符串String edittextshanchu = DtelEdit.toString();@Overridepublic void onClick(View view) {//// List<Driveruser> driveruers = DataSupport.findAll(Driveruser.class);//for(Driveruser driveruser:driveruers) {//if ((driveruser.getDtel().toString()).equals(edittextshanchu)) {//DataSupport.deleteAll(Driveruser.class,"Dtel ==?","edittextshanchu");//driveruser.save();DataSupport.deleteAll(Driveruser.class);// SQLiteOpenHelper TestApp = dbHelper.getWritableDatabase();//  TestApp.delete("driveruser","Dtel==",new String[] ("edittextshanchu")Toast.makeText(RegisterActivity.this,"刪除成功",Toast.LENGTH_SHORT).show();return;}});}
}

閱讀斜體字,首先我們創建了一個Driveruser的實例,然后調用Driveruser中的set方法對數據進行設置,最后再調用driveruser.save()方法就能完成數據添加操作了。save()是從DataSupport()類中繼承而來的。除了save()方法,DataSupport()類還提供了豐富的CRUD方法。
















本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/274100.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/274100.shtml
英文地址,請注明出處:http://en.pswp.cn/news/274100.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微信公眾平臺的服務號和訂閱號

微信公眾平臺 服務號 訂閱號 作者&#xff1a;方倍工作室 地址&#xff1a;http://www.cnblogs.com/txw1958/p/ServiceNumber-subscriptionNumber.html 什么是服務號&#xff1f; 服務號給企業和組織提供更強大的業務服務與用戶管理能力&#xff0c;幫助企業快速實現全新的公眾…

Android 第十七課 碎片的簡單用法及動態添加碎片

Fragment(碎片)是一種可以嵌入在活動當中的UI片段&#xff0c;它可以讓程序更加合理和充分的利用大屏幕的空間。碎片和活動太像了&#xff0c;同樣都包含布局&#xff0c;都有自己的聲明周期&#xff0c;可以將碎片理解為一種迷你型的活動。 新建FragmentTest項目。假設項目已經…

在Linux下禁用鍵盤、鼠標、觸摸板(筆記本)等輸入設備

在Linux系統下禁用鍵盤、觸摸板、鼠標等輸入設備&#xff0c;可以通過xinput命令來實現&#xff1a;主要涉及&#xff1a;#xinput list#xinput list-props list-number#xinput set-prop list-number func-number 1/0具體操作如下&#xff1a;step1&#xff1a;查看系統中有那些…

委托又給我惹麻煩了————記委托鏈的取消注冊、獲取返回值

今天改bug碰到了一個問題&#xff0c;有多個方法注冊到了一個事件里去&#xff0c;而這些方法本身又有點兒互斥&#xff0c;因而造成了bug&#xff0c;哥調試半天才發現&#xff0c;郁悶至極&#xff0c;遂復習了以前的知識并進行適當延伸&#xff0c;再將成果記錄及分享之&…

Python第一課

對python仰慕已久&#xff0c;今日下定決心學習。可能我是一時頭腦發熱&#xff0c;但我還是愿意堅持。 先了解一下&#xff1a;命令行模式和Python交互模式 在Windows開始菜單選擇“命令提示符”&#xff0c;就進入到命令行模式&#xff0c;它的提示符類似C:\>&#xff1a;…

C++模板專門化與重載

最近在復習C有關知識&#xff0c;又重新看<<Effective C>>&#xff0c;收獲頗豐。原來以前看這邊書&#xff0c;好多地方都是淺嘗輒止。<<Effective C>>條款25&#xff1a;考慮寫出一個不拋出異常的swap函數&#xff0c;涉及到C模板專門化(Templates S…

Android 第十八課 強大的滾動控件 RecyclerView

步驟&#xff1a; 一、添加依賴庫compilecom.android.support:recyclerview-v7:26.1.0 二、在activity_mian.xml中&#xff0c;添加RecyclerView控件&#xff0c;并占據整個頁面。 三、把你要在RecyclerView中展示的內容&#xff0c;設置成一個實體類Fruit&#xff0c;接著為Re…

通過rtcwake命令設置系統S3(休眠到內存)/S4(掛起到硬盤)一段時間后自動喚醒

rtcwake -m disk -s 60 //S4&#xff08;掛起&#xff09;60秒后自動喚醒 rtcwake -m mem -s 60 //S3(休眠&#xff09;60秒后自動喚醒

電商首頁設計的時候,就應該考慮這個

如果有目的去找某一類商品的人幾乎都會從導航或搜索進去了&#xff0c;看首頁的一般是屬于那些還沒想好要買什么東西的人&#xff0c;這些人一般都是漫無目的的瞎逛&#xff0c;看在首頁有沒有特價的或便宜的東西被撿到。 轉載于:https://www.cnblogs.com/wangzong/p/3256555.h…

JavaScript 第一課 JavaScript簡史

1、JavaScript的起源 Java在理論上可以部署在任何環境下&#xff0c;但是JavaScript卻更傾向于只應用在Web瀏覽器。JavaScript是一種腳本語言&#xff0c;通常只能通過Web瀏覽器去完成一些操作而不能像普通意義上的程序那樣獨立運行。因為需要Web瀏覽器進行解釋和執行&#xff…

Linux下的屏保設置 xset s 與 xset dpms

Linux下的屏保設置 xset s 與 xset dpmshttp://bbs.chinaunix.net/archiver/?tid-2112889.html用xset q 可以查看當前屏保的設置情況&#xff0c;黑屏方式的屏保有兩種狀態&#xff1a;1. xset 的s參數后面可接兩個數字參數&#xff0c;前一個即是進入屏保的秒數&#xff0…

ios即時通訊客戶端開發之-mac上安裝MySQL

一、安裝 到MySQL官網上http://dev.mysql.com/downloads/mysql/&#xff0c;下載mysql可安裝dmg版本 比如&#xff1a;Mac OS X ver. 10.7 (x86, 64-bit), DMG Archive 下載完的文件為&#xff1a;mysql-5.6.10-osx10.7-x86_64.dmg 1.點擊&#xff0c;安裝包里的 2.點擊安裝 安…

Android 第十九課 大喇叭--廣播機制----動態注冊監聽網絡變化與靜態注冊實現開機啟動

為了便于進行 系統級別的消息通知&#xff0c;Android引入了一套廣播消息機制。 1、廣播機制簡介&#xff1a;因為Android中的每個應用程序都可以對自己感興趣的廣播盡心注冊&#xff0c;這樣程序只會接收自己所關心的廣播內容&#xff0c;這些廣播來自于系統的&#xff0c;也可…

dbus 和 policykit 實例篇(python)

dbus 和 policykit 實例篇&#xff08;python&#xff09; 使用policykit 的程序一般都有一個dbus daemon程序來完成相關操作&#xff0c;這個dbus daemon 會在系統注冊一個system bus 服務名&#xff0c;用于響應要求root privileged的操作&#xff0c;當dbus請求到達時會先驗…

一個實際的sonar代碼檢查的配置文件

國內私募機構九鼎控股打造APP&#xff0c;來就送 20元現金領取地址&#xff1a;http://jdb.jiudingcapital.com/phone.html內部邀請碼&#xff1a;C8E245J &#xff08;不寫邀請碼&#xff0c;沒有現金送&#xff09;國內私募機構九鼎控股打造&#xff0c;九鼎投資是在全國股份…

JavaScript 第二課 JavaScript語法

本章內容&#xff1a;語句變量和數組操作符條件語句和循環語句函數與對象 ------------------------------------------------------------- 準備&#xff1a; 編寫JavaScript腳本只需要一個普通地文本編輯器和一個Web瀏覽器就足啦。 用JavaScript編寫的代碼必須通過HTML/XHTML…

和菜鳥一起學linux之DBUS基礎學習記錄

轉自&#xff1a;http://blog.csdn.net/eastmoon502136/article/details/10044993 D-Bus三層架構 D-Bus是一個為應用程序間通信的消息總線系統, 用于進程之間的通信。它是個3層架構的IPC 系統&#xff0c;包括&#xff1a; 1、函數庫libdbus &#xff0c;用于兩個應用程序互…

Android 第二十課 廣播機制(大喇叭)----發送自定義廣播(包括發送標準廣播和發送有序廣播)

廣播分為兩種類型&#xff1a;標準廣播和有序廣播 我們來看一下具體這兩者的具體區別&#xff1a; 1、發送標準廣播 我們需要先定義一個廣播接收器來準備接收此廣播才行&#xff0c;否則也是白發。 新建一個MyBroadcastReceiver,代碼如下&#xff1a; package com.example.broa…

八大排序算法

概述 排序有內部排序和外部排序&#xff0c;內部排序是數據記錄在內存中進行排序&#xff0c;而外部排序是因排序的數據很大&#xff0c;一次不能容納全部的排序記錄&#xff0c;在排序過程中需要訪問外存。 我們這里說說八大排序就是內部排序。 當n較大&#xff0c;則應采用…

需求?

1 需求怎樣描述清楚&#xff1f; 利用用例技術&#xff0c;一般這里指的是系統用例&#xff1b;包括以下幾個內容&#xff1a; 用例視圖 系統的功能描述&#xff1b; 用例規約 規定了用戶和系統的交互過程&#xff1b;用戶如何使用系統&#xff1b;用戶如何交互&#xff0c;以及…