最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

運(yùn)動(dòng)APP開發(fā)大作業(yè)

2023-01-21 01:13 作者:考研保研直通車  | 我要投稿

實(shí) 驗(yàn) 報(bào) 告

課程名稱

實(shí)驗(yàn)名稱

指導(dǎo)教師

專業(yè)

班級

學(xué)號

姓名

目 錄

一、設(shè)計(jì)背景31. 需求分析32. 課題研究的目的和意義3二、系統(tǒng)需求分析與開發(fā)環(huán)境31. 系統(tǒng)功能需求32.系統(tǒng)界面需求43.開發(fā)環(huán)境4三、系統(tǒng)設(shè)計(jì)4四、系統(tǒng)測試51.腦模擬器測試6五、總結(jié)與展望6六、重要程序71.LoginActivity72.RegisterActivity123.DatabaseHelper174.DictActivity18

  1. 設(shè)計(jì)背景

  2. 需求分析
    對于很多人來說擁有一副好身材能讓自己增添不少魅力;對于愛吃而又擔(dān)心自己發(fā)胖的人來說適當(dāng)?shù)倪\(yùn)動(dòng)是最好的選擇。移動(dòng)互聯(lián)網(wǎng)時(shí)代,市場上“約跑”“約運(yùn)動(dòng)”運(yùn)動(dòng)指南APP軟件成為新時(shí)代閨蜜朋友的互動(dòng)模式,運(yùn)動(dòng)熱潮的來臨,這樣讓越來越多的人加入運(yùn)動(dòng)的行列中,大眾的運(yùn)動(dòng)熱情也刺激著更多與運(yùn)動(dòng)有關(guān)的產(chǎn)業(yè)飛速發(fā)展,尤其是與“互聯(lián)網(wǎng)+”結(jié)合產(chǎn)生的智能運(yùn)動(dòng)運(yùn)動(dòng)App開發(fā)更是發(fā)展得如火如荼… 人們通過一款運(yùn)動(dòng)指南型App應(yīng)用就可以隨時(shí)隨地的進(jìn)行運(yùn)動(dòng)鍛煉,可以不用去運(yùn)動(dòng)房鍛煉也可以達(dá)到完美的身材,這樣運(yùn)動(dòng)運(yùn)動(dòng)App開發(fā)給人們帶來了極大的方便。所以這次做的是一款運(yùn)動(dòng)類的軟件,為了方便用戶隨時(shí)隨地可以運(yùn)動(dòng)。在配色方面使用白色和綠色非常簡單的顏色能讓人眼前一亮。在軟件功能方面,用戶首先需要注冊用戶名填寫密碼,注冊成功之后,用戶可以用之前注冊的用戶名和密碼進(jìn)行登錄。登錄成功之后進(jìn)入到導(dǎo)航頁面,其中包括會員信息和運(yùn)動(dòng)項(xiàng)目兩個(gè)部分,會員信息記錄了會員的姓名身高體重等一些基本信息,還可以查看用戶報(bào)名的課程名稱,可以增加以及刪除報(bào)名項(xiàng)目,運(yùn)動(dòng)項(xiàng)目頁面則是列舉出一些項(xiàng)目名稱來供用戶選擇。

  3. 課題研究的目的和意義

所以這次做的是一款運(yùn)動(dòng)類的軟件,為了方便用戶隨時(shí)隨地可以運(yùn)動(dòng)。在配色方面使用白色和綠色非常簡單的顏色能讓人眼前一亮。在軟件功能方面,用戶首先需要注冊用戶名填寫密碼,注冊成功之后,用戶可以用之前注冊的用戶名和密碼進(jìn)行登錄。登錄成功之后進(jìn)入到導(dǎo)航頁面,其中包括會員信息和運(yùn)動(dòng)項(xiàng)目兩個(gè)部分,會員信息記錄了會員的姓名身高體重等一些基本信息,還可以查看用戶報(bào)名的課程名稱,可以增加以及刪除報(bào)名項(xiàng)目,運(yùn)動(dòng)項(xiàng)目頁面則是列舉出一些項(xiàng)目名稱來供用戶選擇。

  1. 系統(tǒng)需求分析與開發(fā)環(huán)境

  2. 系統(tǒng)功能需求
    需要包含登入注冊功能,用戶名和密碼儲存在Sharedpreferences輕型數(shù)據(jù)類中,按鈕實(shí)現(xiàn)頁面跳轉(zhuǎn)。包括數(shù)據(jù)庫的增刪查改功能,采用的是SQLite數(shù)據(jù)庫。

  3. 系統(tǒng)界面需求
    簡介美觀,采用代表健康的綠色作為主色調(diào),和運(yùn)動(dòng)的主題相符合。注冊和登入的頁面參考了許多app,要讓頁面做到簡介美觀,所以登入注冊頁面都用到了自定義按鈕樣式和自定義輸入框樣式,按鈕設(shè)計(jì)出顏色漸變的樣式并加入圓角看起來不生硬,輸入框同樣加入了圓角的設(shè)計(jì)。

  4. 開發(fā)環(huán)境

Android studio 4.0.2+JDK1.8+gradle-6.1.1-all.zip

  1. 系統(tǒng)設(shè)計(jì)


登入注冊頁面制作完后,做了一個(gè)導(dǎo)航頁面,頁面上方可以橫向滑動(dòng)運(yùn)動(dòng)館內(nèi)部的圖片。然后是會員頁面,用戶可以通過這個(gè)頁面查詢自己會員信息,這個(gè)頁面也加入了增刪查改的功能,采用的是SQlite數(shù)據(jù)庫,方便用戶對課程時(shí)間的記錄。頁面的設(shè)計(jì)同樣采用了按鈕的自定義樣式和輸入框的自定義樣式。頁面上方是用戶的基本信息介紹,頭像部分也是設(shè)計(jì)了一個(gè)圖片樣式的自定義,給圖片添加了一個(gè)邊框,使頁面看起來和諧統(tǒng)一美觀。


最后是一個(gè)課程的展示界面,包括了運(yùn)動(dòng)館開展的全部課程,方便用戶查看和挑選。

  1. 系統(tǒng)測試

  2. 腦模擬器測試


安卓APP源碼和設(shè)計(jì)報(bào)告——運(yùn)動(dòng)軟件
  1. 總結(jié)與展望
    在這次移動(dòng)終端開發(fā)課程設(shè)計(jì)過程中,我發(fā)現(xiàn)平時(shí)學(xué)習(xí)的知識與實(shí)踐環(huán)節(jié)所用到的有一定的差距,往往我覺得自己掌握的很好或者自認(rèn)為熟練的技術(shù)卻在此次實(shí)踐環(huán)節(jié)中往往出問題,書本上的知識只提供方法的借鑒,實(shí)踐中自己必須摸索出適合具體工作的方法,這一切都離不開鉆研精神與勤學(xué)好問的精神.在人與人相處過程中我收獲更大,首先要謙虛謹(jǐn)慎,不能自以為是,認(rèn)為自己懂得很多,而僅僅埋頭苦干,而不向他人請教,工作不但是實(shí)踐與應(yīng)用的過程,同時(shí)也是學(xué)習(xí)的過程,我們必須加強(qiáng)與他人的溝通學(xué)習(xí),以便獲得與他人的交流。在這短短的時(shí)間里,讓我深深的感覺到自己在實(shí)際應(yīng)用中所學(xué)專業(yè)知識的匱乏。讓我真真領(lǐng)悟到“學(xué)無止境”這句話的涵義。而老師在專業(yè)認(rèn)識周中所講的,都是課本上沒有而對我們又非常實(shí)用的東西,這又給我們的實(shí)訓(xùn)增加了濃墨淡采的光輝。我懂得了實(shí)際生活中,專業(yè)知識是怎樣應(yīng)用與實(shí)踐的。在這些過程中,我不僅知道了職業(yè)生涯所需具備的專業(yè)知識,而且讓我深深體會到一個(gè)團(tuán)隊(duì)中各成員合作的重要性,要善于團(tuán)隊(duì)合作,善于利用別人的智慧,這才是大智慧??繂我坏牧α渴呛茈y完成一個(gè)大項(xiàng)目的,在進(jìn)行團(tuán)隊(duì)合作的時(shí)候,還要耐心聽取每個(gè)成員的意見,使我們的組合達(dá)到更加完美。

  2. 重要程序

  3. LoginActivity
    public class LoginActivity extends AppCompatActivity {
    private TextView tv_main_title;//標(biāo)題
    private TextView tv_back,tv_register,tv_find_psw;//返回鍵,顯示的注冊,找回密碼
    private Button btn_login;//登錄按鈕
    private String userName,psw,spPsw;//獲取的用戶名,密碼,加密密碼
    private EditText et_user_name,et_psw;//編輯框
    @Override
    protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    //設(shè)置此界面為豎屏
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    init();
    }
    //獲取界面控件
    private void init() {
    //從main_title_bar中獲取的id
    tv_main_title=findViewById(R.id.tv_main_title);
    tv_main_title.setText(“登錄”);
    tv_back=findViewById(R.id.tv_back);
    //從activity_login.xml中獲取的
    tv_register=findViewById(R.id.tv_register);
    tv_find_psw=findViewById(R.id.tv_find_psw);
    btn_login=findViewById(R.id.btn_login);
    et_user_name=findViewById(R.id.et_user_name);
    et_psw=findViewById(R.id.et_psw);
    //返回鍵的點(diǎn)擊事件
    tv_back.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    //登錄界面銷毀
    LoginActivity.this.finish();
    }
    });
    //立即注冊控件的點(diǎn)擊事件
    tv_register.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    //為了跳轉(zhuǎn)到注冊界面,并實(shí)現(xiàn)注冊功能
    Intent intent=new Intent(LoginActivity.this,RegisterActivity.class);
    startActivityForResult(intent, 1);
    }
    });
    //找回密碼控件的點(diǎn)擊事件
    tv_find_psw.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    //跳轉(zhuǎn)到找回密碼界面(此頁面暫未創(chuàng)建)
    }
    });
    //登錄按鈕的點(diǎn)擊事件
    btn_login.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    //開始登錄,獲取用戶名和密碼 getText().toString().trim();
    userName=et_user_name.getText().toString().trim();
    psw=et_psw.getText().toString().trim();
    //對當(dāng)前用戶輸入的密碼進(jìn)行MD5加密再進(jìn)行比對判斷, MD5Utils.md5( ); psw 進(jìn)行加密判斷是否一致
    String md5Psw= MD5Utils.md5(psw);
    // md5Psw ; spPsw 為根據(jù)從SharedPreferences中用戶名讀取密碼
    // 定義方法 readPsw為了讀取用戶名,得到密碼
    spPsw=readPsw(userName);
    // TextUtils.isEmpty
    if(TextUtils.isEmpty(userName)){
    Toast.makeText(LoginActivity.this, “請輸入用戶名”, Toast.LENGTH_SHORT).show();
    return;
    }else if(TextUtils.isEmpty(psw)){
    Toast.makeText(LoginActivity.this, “請輸入密碼”, Toast.LENGTH_SHORT).show();
    return;
    // md5Psw.equals(); 判斷,輸入的密碼加密后,是否與保存在SharedPreferences中一致
    }else if(md5Psw.equals(spPsw)){
    //一致登錄成功
    Toast.makeText(LoginActivity.this, “登錄成功”, Toast.LENGTH_SHORT).show();
    //保存登錄狀態(tài),在界面保存登錄的用戶名定義個(gè)方法 saveLoginStatus boolean 狀態(tài) , userName 用戶名;
    saveLoginStatus(true, userName);
    //登錄成功后關(guān)閉此頁面進(jìn)入主頁
    Intent data=new Intent();
    //datad.putExtra( ); name , value ;
    data.putExtra(“isLogin”,true);
    //RESULT_OK為Activity系統(tǒng)常量,狀態(tài)碼為-1
    // 表示此頁面下的內(nèi)容操作成功將data返回到上一頁面,如果是用back返回過去的則不存在用setResult傳遞data值
    setResult(RESULT_OK,data);
    //銷毀登錄界面
    LoginActivity.this.finish();
    //跳轉(zhuǎn)到主界面,登錄成功的狀態(tài)傳遞到 MainActivity 中
    startActivity(new Intent(LoginActivity.this,Classification.class));
    return;
    }else if((spPsw!=null&&!TextUtils.isEmpty(spPsw)&&!md5Psw.equals(spPsw))){
    Toast.makeText(LoginActivity.this, “輸入的用戶名和密碼不一致”, Toast.LENGTH_SHORT).show();
    return;
    }else{
    Toast.makeText(LoginActivity.this, “此用戶名不存在”, Toast.LENGTH_SHORT).show();
    }
    }
    });
    }
    private String readPsw(String userName){
    //getSharedPreferences(“l(fā)oginInfo”,MODE_PRIVATE);
    //”loginInfo”,mode_private; MODE_PRIVATE表示可以繼續(xù)寫入
    SharedPreferences sp=getSharedPreferences(“l(fā)oginInfo”,?MODE_PRIVATE);
    //sp.getString() userName, “”;
    return sp.getString(userName , “”);
    }
    private void saveLoginStatus(boolean status,String userName){
    //saveLoginStatus(true, userName);
    //loginInfo表示文件名 SharedPreferences sp=getSharedPreferences(“l(fā)oginInfo”, MODE_PRIVATE);
    SharedPreferences sp=getSharedPreferences(“l(fā)oginInfo”,?MODE_PRIVATE);
    //獲取編輯器
    SharedPreferences.Editor editor=sp.edit();
    //存入boolean類型的登錄狀態(tài)
    editor.putBoolean(“isLogin”, status);
    //存入登錄狀態(tài)時(shí)的用戶名
    editor.putString(“l(fā)oginUserName”, userName);
    //提交修改
    editor.commit();
    }
    /**
    * 注冊成功的數(shù)據(jù)返回至此
    * @param requestCode 請求碼
    * @param resultCode 結(jié)果碼
    * @param data 數(shù)據(jù)
    */
    @Override
    //顯示數(shù)據(jù), onActivityResult
    //startActivityForResult(intent, 1); 從注冊界面中獲取數(shù)據(jù)
    //int requestCode , int resultCode , Intent data
    // LoginActivity -> startActivityForResult -> onActivityResult();
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    //super.onActivityResult(requestCode, resultCode, data);
    super.onActivityResult(requestCode, resultCode, data);
    if(data!=null){
    //是獲取注冊界面回傳過來的用戶名
    // getExtra().getString(“***”);
    String userName=data.getStringExtra(“userName”);
    if(!TextUtils.isEmpty(userName)){
    //設(shè)置用戶名到 et_user_name 控件
    et_user_name.setText(userName);
    //et_user_name控件的setSelection()方法來設(shè)置光標(biāo)位置
    et_user_name.setSelection(userName.length());
    }
    }
    }
    }

  4. RegisterActivity
    public class RegisterActivity extends AppCompatActivity {
    private TextView tv_main_title;//標(biāo)題
    private TextView tv_back;//返回按鈕
    private Button btn_register;//注冊按鈕
    //用戶名,密碼,再次輸入的密碼的控件
    private EditText et_user_name,et_psw,et_psw_again;
    //用戶名,密碼,再次輸入的密碼的控件的獲取值
    private String userName,psw,pswAgain;
    //標(biāo)題布局
    private RelativeLayout rl_title_bar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //設(shè)置頁面布局 ,注冊界面
    setContentView(R.layout.activity_register);
    //設(shè)置此界面為豎屏
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    init();
    }
    private void init() {
    //從main_title_bar.xml 頁面布局中獲取對應(yīng)的UI控件
    tv_main_title=findViewById(R.id.tv_main_title);
    tv_main_title.setText(“注冊”);
    tv_back=findViewById(R.id.tv_back);
    //布局根元素
    rl_title_bar=findViewById(R.id.title_bar);
    rl_title_bar.setBackgroundColor(Color.TRANSPARENT);
    //從activity_register.xml 頁面中獲取對應(yīng)的UI控件
    btn_register=findViewById(R.id.btn_register);
    et_user_name=findViewById(R.id.et_user_name);
    et_psw=findViewById(R.id.et_psw);
    et_psw_again=findViewById(R.id.et_psw_again);
    tv_back.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    //返回鍵
    RegisterActivity.this.finish();
    }
    });
    //注冊按鈕
    btn_register.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    //獲取輸入在相應(yīng)控件中的字符串
    getEditString();
    //判斷輸入框內(nèi)容
    if(TextUtils.isEmpty(userName)){
    Toast.makeText(RegisterActivity.this, “請輸入用戶名”, Toast.LENGTH_SHORT).show();
    return;
    }else if(TextUtils.isEmpty(psw)){
    Toast.makeText(RegisterActivity.this, “請輸入密碼”, Toast.LENGTH_SHORT).show();
    return;
    }else if(TextUtils.isEmpty(pswAgain)){
    Toast.makeText(RegisterActivity.this, “請?jiān)俅屋斎朊艽a”, Toast.LENGTH_SHORT).show();
    return;
    }else if(!psw.equals(pswAgain)){
    Toast.makeText(RegisterActivity.this, “輸入兩次的密碼不一樣”, Toast.LENGTH_SHORT).show();
    return;
    /**
    *從SharedPreferences中讀取輸入的用戶名,判斷SharedPreferences中是否有此用戶名
    */
    }else if(isExistUserName(userName)){
    Toast.makeText(RegisterActivity.this, “此賬戶名已經(jīng)存在”, Toast.LENGTH_SHORT).show();
    return;
    }else{
    Toast.makeText(RegisterActivity.this, “注冊成功”, Toast.LENGTH_SHORT).show();
    //把賬號、密碼和賬號標(biāo)識保存到sp里面
    /**
    * 保存賬號和密碼到SharedPreferences中
    */
    saveRegisterInfo(userName, psw);
    //注冊成功后把賬號傳遞到LoginActivity.java中
    // 返回值到loginActivity顯示
    Intent data = new Intent();
    data.putExtra(“userName”, userName);
    setResult(RESULT_OK, data);
    //RESULT_OK為Activity系統(tǒng)常量,狀態(tài)碼為-1,
    // 表示此頁面下的內(nèi)容操作成功將data返回到上一頁面,如果是用back返回過去的則不存在用setResult傳遞data值
    RegisterActivity.this.finish();
    }
    }
    });
    }
    /**
    * 獲取控件中的字符串
    */
    private void getEditString(){
    userName=et_user_name.getText().toString().trim();
    psw=et_psw.getText().toString().trim();
    pswAgain=et_psw_again.getText().toString().trim();
    }
    /**
    * 從SharedPreferences中讀取輸入的用戶名,判斷SharedPreferences中是否有此用戶名
    */
    private boolean isExistUserName(String userName){
    boolean has_userName=false;
    //mode_private SharedPreferences sp = getSharedPreferences( );
    // “l(fā)oginInfo”, MODE_PRIVATE
    SharedPreferences sp=getSharedPreferences(“l(fā)oginInfo”, MODE_PRIVATE);
    //獲取密碼
    String spPsw=sp.getString(userName, “”);//傳入用戶名獲取密碼
    //如果密碼不為空則確實(shí)保存過這個(gè)用戶名
    if(!TextUtils.isEmpty(spPsw)) {
    has_userName=true;
    }
    return has_userName;
    }
    private void saveRegisterInfo(String userName,String psw){
    String md5Psw = MD5Utils.md5(psw);//把密碼用MD5加密
    //loginInfo表示文件名, mode_private SharedPreferences sp = getSharedPreferences( );
    SharedPreferences sp=getSharedPreferences(“l(fā)oginInfo”, MODE_PRIVATE);
    //獲取編輯器,
    SharedPreferences.Editor editor -> sp.edit();
    SharedPreferences.Editor editor=sp.edit();
    //以用戶名為key,密碼為value保存在SharedPreferences中
    //key,value,如鍵值對,editor.putString(用戶名,密碼);
    editor.putString(userName, md5Psw);
    //提交修改 editor.commit();
    editor.commit();
    }
    }

  5. DatabaseHelper
    public class DatabaseHelper extends SQLiteOpenHelper {
    public DatabaseHelper(Context context){super(context,”Test.db”,null,1);}
    //第一個(gè)參數(shù)是上下文,第二個(gè)參數(shù)是數(shù)據(jù)庫名稱,
    //第三個(gè)參數(shù)是CursorFactory對象,一般設(shè)置為null,第四個(gè)參數(shù)是數(shù)據(jù)庫的版本
    public void onCreate(SQLiteDatabase db) {
    db.execSQL(“CREATE TABLE information(_id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(20),age INTEGER)”);
    }
    //創(chuàng)建表 表名information 表結(jié)構(gòu) 自增id,字符串姓名,int年齡
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    Log.d(“myDeBug”,”數(shù)據(jù)庫版本已更新”);
    }
    //數(shù)據(jù)庫版本發(fā)生變化時(shí)調(diào)用
    }

  6. DictActivity

public class DictActivity extends AppCompatActivity {

private Button insertButton, updateButton, searchButton, deleteButton;

private Button btn_xl1;

private EditText name, age;

private TextView show, showAge;

final DatabaseHelper dbHelper = new DatabaseHelper(DictActivity.this);

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_dict);

btn_xl1 = findViewById(R.id.btn_xl);

btn_xl1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

//創(chuàng)建Intent 對象

Intent intent = new Intent(DictActivity.this, Classification.class);

//啟動(dòng)Activity

startActivity(intent);

}

});

insertButton = findViewById(R.id.btn_insert);

updateButton = findViewById(R.id.btn_update);

searchButton = findViewById(R.id.btn_search);

deleteButton = findViewById(R.id.btn_delete);

name = findViewById(R.id.name);

age = findViewById(R.id.age);

show = findViewById(R.id.tv_show);

showAge = findViewById(R.id.tv_showAge);

SQLiteDatabase db = dbHelper.getReadableDatabase();

myShow();

insertButton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

SQLiteDatabase db = dbHelper.getWritableDatabase();

ContentValues values = new ContentValues();

values.put(“name”, name.getText().toString());

values.put(“age”, age.getText().toString());

long id = db.insert(“information”, null, values);

Log.d(“myDeBug”, “insert”);

myShow();

db.close();

name.setText(null);

age.setText(null);

}

});

updateButton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

SQLiteDatabase db = dbHelper.getWritableDatabase();

ContentValues values = new ContentValues();

values.put(“age”, age.getText().toString());

db.update(“information”, values, “name=?”, new String[]{name.getText().toString()});

myShow();

db.close();

Log.d(“myDebug”, “update”);

name.setText(null);

age.setText(null);

}

});

searchButton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

SQLiteDatabase db = dbHelper.getWritableDatabase();

String name1 = name.getText().toString();

show.setText(null);

if (name1.equals(“”)) {

myShow();

db.close();

} else {

show.setText(“項(xiàng)目名稱”);

showAge.setText(“日期”);

Cursor cursor = db.rawQuery(“select * from information where name = ? “, new String[]{name1});

while (cursor.moveToNext()) {

String newName = cursor.getString(cursor.getColumnIndex(“name”));

int newAge = cursor.getInt(cursor.getColumnIndex(“age”));

// show.setText(show.getText() + “\n” + newName + “\t” + newAge);

show.setText(show.getText() + “\n” + newName);

showAge.setText(showAge.getText() + “\n” + newAge);

}

cursor.close();

db.close();

name.setText(null);

age.setText(null);

}

}

});

deleteButton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

SQLiteDatabase db = dbHelper.getWritableDatabase();

db.delete(“information”, “name=?”, new String[]{name.getText().toString()});

myShow();

db.close();

Log.d(“myDeBug”, “DeleteSuccess”);

name.setText(null);

age.setText(null);

}

});

}

public void myShow() {

SQLiteDatabase db = dbHelper.getReadableDatabase();

show.setText(“項(xiàng)目名稱”);

showAge.setText(“日期”);

Cursor cursor = db.rawQuery(“select * from information”, null);

while (cursor.moveToNext()) {

String newName = cursor.getString(cursor.getColumnIndex(“name”));

int newAge = cursor.getInt(cursor.getColumnIndex(“age”));

show.setText(show.getText() + “\n” + newName);

showAge.setText(showAge.getText() + “\n” + newAge);

}

cursor.close();

}

}

源碼鏈接:https://yunjunet.cn/876497.html

運(yùn)動(dòng)APP開發(fā)大作業(yè)的評論 (共 條)

分享到微博請遵守國家法律
徐水县| 江永县| 齐齐哈尔市| 宁蒗| 靖西县| 赤峰市| 扶余县| 克山县| 永福县| 聂拉木县| 小金县| 博罗县| 乐都县| 长泰县| 田阳县| 正定县| 吴堡县| 临高县| 昆明市| 新乐市| 旌德县| 宁化县| 漳平市| 彭泽县| 寿光市| 铅山县| 招远市| 宁国市| 鸡东县| 通榆县| 文成县| 四子王旗| 衡山县| 嘉祥县| 泰来县| 龙游县| 长治县| 南川市| 静海县| 古田县| 张北县|