安卓課程設計報告


目錄

 

1.需求分析

1.1 UML用戶需求用例圖

       1.2 用戶用例分析說明

1.3 UML管理者需求用例圖

           1.4 管理者用例分析說明

2.系統設計

  2.1 系統模塊及功能圖

       2.2 UML時序圖

       2.3 UML類圖

        2.4 UML模塊關系圖

         2.4 數據庫設計

3.系統測試

   3.1 功能模塊測試用例

        3.2  測試結果

4.系統實現

       4.1 核心模塊界面及關鍵代碼

5.技術說明

  5.1應用技術與主要代碼

6.項目總結

 

一、需求分析

需求的編寫是為了研究影院售票系統軟件的開發途徑和應用方法。同時它也是進行項目策划、概要設計和詳細設計的基礎,是維護人員進行內部維護,信息更新,驗收和測試的依據。本需求的購票人是與影院售票系統軟件開發有聯系的決策人,開發組成人員,扶助開發者以及軟件校驗者!

1.1 UML用戶需求用例

 

 

                                             顧客用例圖

1.2 用戶用例分析說明

1.簡要說明:

 

本用例描述用戶在影院系統查詢電影與信息的過程

 

2.基本流:

1)購票者查看電影信息來確認電影的名字,封面,電影簡介。

2)購票者查看自己的優惠券與優惠碼。

3)購票者查看自己的訂單與錢包。

4)購票者查看自己的商城、電影票、活動。

5)購票者在我的頁面向客服中心投訴等

6)用戶在設置里退出登錄

 

3.備選流:無

4.特殊要求:無

5.前置條件:執行“登錄”用例

6.擴展點:無

7.相關數據:電影信息

1.3 UML管理者需求用例圖

 

 

1.4 管理人員用例分析說明  

1.簡要說明

本用例描述管理人員管理電影院的過程

2.基本流:  

1.管理人員在數據服務器上管理電影信息(修改,添加,刪除)

2.將管理人員所做的改動返回數據服務器            

3.系統保存管理人員所做改動,並備份原數據

3.備選流:無

4.特殊要求:無

5.前置條件:執行“登錄”用例

6.擴展點:無

7.相關數據:電影信息

 

二、系統設計

2.1系統模塊及功能圖

 

 

                                                             總體系統模塊圖

 

2.2 UML時序圖

 

 

2.3 UML類圖

 

系統類圖

 

 

2.4 數據庫設計

 

 

 

 

 

 

package com.example.film;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.provider.BaseColumns;

public class DbDataBase extends SQLiteOpenHelper implements BaseColumns{
    static String DB_NAME = "itcase.db";
    static int DB_VERSION = 1;
    static String TABLE_NAME = "mysql";
    static  String _NAME = "name";
    static String _PHONE= "phone";

    public DbDataBase(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL("create table "+TABLE_NAME+"("+_ID+" integer primary key autoincrement,"+_NAME+" text ,"+_PHONE+" text)");

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub

    }

}

二、系統測試

3.1 功能測試用例

1、登錄

· 使用合法的用戶登錄系統

· 系統是否允許多次非法的登錄,是否有次數限制

· 使用已經登錄的賬號登錄系統是否正確處理

· 用戶名、口令(密碼)錯誤或漏填時能否登陸

· 登陸后,頁面中登錄信息

 

2、忘記密碼

 ·忘記密碼按鈕是否可用

·點擊按鈕后是否可以正常跳轉頁面

·發送短信是否可以正常調用

 

3、電影列表展示頁面

1)頁面能否正常跳轉

2)電影信息能否正常展示

3)能否滑動查看

 

4、底部導航按鈕

1)按鈕是否可以點擊

2)是否可以正確跳轉頁面

 

5、票夾

1)能否正常展示頁面

2)能否使用數據庫進行增刪改查

3)增刪改查按鈕是否可行

4)能否正常運行

 

6、我的頁面

1)我的訂單頁面跳轉測試

2)我的錢包頁面跳轉測試

3)客服中心頁面跳轉測試

4)設置頁面跳轉測試

 

7、退出登錄

1)能否正確運行退出按鈕

2)能否正確退回登錄頁面

3.2 測試結果

1、登錄

 

 

 

2、忘記密碼

 

 

 

3、電影列表展示頁面

 

 

 

 

4、底部導航按鈕

 

 

 

5、票夾

 

 

 

 

6、我的頁面

 

 

 

 

7、退出登錄

 

 

 

 

二、系統實現

核心模塊界面關鍵代碼

1)登錄頁面

 

 

 

package com.example.film;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {
    private Button but;//創建一個按鈕對象,導入包
    private Button btn;
    private EditText et1;
    private EditText et2;
    @Override

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //對but進行實例化
        but=(Button)findViewById(R.id.button1);
        btn=(Button)findViewById(R.id.button2);
        //創建but的單擊事件,參數要傳匿名內部類
        et1=(EditText)findViewById(R.id.editText1);
        et2=(EditText)findViewById(R.id.editText2);
        but.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                //測試使用System.out.println("hello..........");
                //要成功進行跳轉到intent這個對象
                //第一個參數是原來的類,出發站以.this結尾
                //第二個參數是要跳轉的類,結束站以class結尾
                //Intent in=new Intent(MainActivity.this,SecActivity.class);
                //startActivity(in);
                String  username=et1.getText().toString();
                String  pwd=et2.getText().toString();
                if(username.equals("djp")&&pwd.equals("3692369")){
                    //密碼確認
                    Intent in=new Intent(MainActivity.this,FilmActivity.class);
                    startActivity(in);}
            }

        });
        btn.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent in2=new Intent();//創建意圖對象
    /* 打電話
            in2.setAction(Intent.ACTION_CALL);指定意圖動作
            in2.setData(Uri.parse("tel:5556"));
            startActivity(in2);啟動意圖*/
                //發短信
                in2.setAction(Intent.ACTION_SENDTO);
                in2.setData(Uri.parse("smsto:10086"));
                in2.putExtra("sms_body", "password");
                startActivity(in2);//=MainActivity.this.startActivity(in2)


            }

        });
    }//onCreat.


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

2)退出登錄

 

 

 

 

package com.example.film;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Main9Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main9);
        Button btn11 = (Button) findViewById(R.id.btn11);
        btn11.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(Main9Activity.this, MainActivity.class);
                startActivity(i);
            }
        });
    }
}

 

3)電影展示頁面

 

 

 

package com.example.film;

import android.os.Bundle;
import android.widget.ListView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;
import com.example.film.adpter.FilmAdpter;
import com.example.film.entity.Film;

import java.util.ArrayList;
import java.util.List;

public class Main2Activity extends AppCompatActivity {
    private List<Film> consList = new ArrayList();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        initData();
        Toast.makeText(this,consList.size()+"",0).show();

        FilmAdpter adapter = new FilmAdpter(Main2Activity.this, R.layout.list_item, consList);
        //獲取ListView
        ListView listView = (ListView) findViewById(R.id.listView);
        //給ListView設置適配器
        listView.setAdapter(adapter);
    }

    private void initData(){
        Film yewen4 = new Film(1,"《葉問4》","該片講述了因故來到美國唐人街的葉問,意外卷入一場當地軍方勢力與華人武館的糾紛,葉問挺身而出,向世界證明了中國功夫。", R.drawable.yewen);
        consList.add(yewen4);

}

}

 

4)首頁

 

 

 

public class FilmActivity extends AppCompatActivity {
    private TextView mTextMessage;

    private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
            = new BottomNavigationView.OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            Intent intent = null;
            switch (item.getItemId()) {
                case R.id.navigation_home:
                    mTextMessage.setText(R.string.title_home);
                    return true;
                case R.id.navigation_dashboard:
                    mTextMessage.setText(R.string.title_dashboard);
                    intent = new Intent(FilmActivity.this,Main2Activity.class);
                    startActivity(intent);
                    return true;
                case R.id.navigation_piaojia:
                    mTextMessage.setText("票夾");
                    intent = new Intent(FilmActivity.this,Main5Activity.class);
                    startActivity(intent);
                    return true;

                    case R.id.navigation_notifications:
                    mTextMessage.setText(R.string.title_notifications);
                    intent = new Intent(FilmActivity.this,otherActivity.class);
                    startActivity(intent);
                    return true;
            }
            return false;
        }
    };

 

5)票夾

 

 

 

 

public class Main5Activity extends Activity implements View.OnClickListener  {

    private ContactDao mContactDao;
    private Button mBtnadd;
    private Button mBtnupdata;
    private Button mBtnquery;
    private Button mBtndelete;
    private EditText mName;
    private EditText mPhone;
    private TextView mTv;
    private String name="";
    private String phone="";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mContactDao = new ContactDao(this);
        init();
        mTv.setText(mContactDao.Select(name));

    }
    private void init() {
        mName = (EditText) findViewById(R.id.name);
        mPhone = (EditText) findViewById(R.id.phone);
        mBtnadd =(Button) findViewById(R.id.btn_add);
        mTv = (TextView) findViewById(R.id.tv);
        mBtnupdata =(Button) findViewById(R.id.btn_updata);
        mBtnquery =(Button) findViewById(R.id.btn_query);
        mBtndelete =(Button) findViewById(R.id.btn_delete);
        mBtnadd.setOnClickListener(this);
        mBtnupdata.setOnClickListener(this);
        mBtnquery.setOnClickListener(this);
        mBtndelete.setOnClickListener(this);
    }

 

6)我的頁面

 

 

 

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_other);
    Button btn5 = (Button) findViewById(R.id.btn5);
    Button btn6 = (Button) findViewById(R.id.btn6);
    Button btn7 = (Button) findViewById(R.id.btn7);
    Button btn8 = (Button) findViewById(R.id.btn8);
    btn5.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(otherActivity.this, Main7Activity.class);
            startActivity(i);
        }
    });
    btn6.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(otherActivity.this, Main4Activity.class);
            startActivity(i);
        }
    });
    btn7.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(otherActivity.this, Main8Activity.class);
            startActivity(i);
        }
    });

    btn8.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(otherActivity.this, Main9Activity.class);
            startActivity(i);
        }
    });

 

7)我的錢包

 

 

 

<Button
    android:id="@+id/btn9"
    android:layout_width="0dp"
    android:layout_height="61dp"
    android:layout_marginTop="16dp"
    android:layout_marginEnd="65dp"
    android:layout_marginRight="65dp"
    android:text="優惠券"
    app:layout_constraintEnd_toStartOf="@+id/btn10"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<ImageView
    android:id="@+id/imageView9"
    android:layout_width="414dp"
    android:layout_height="721dp"
    android:layout_marginStart="1dp"
    android:layout_marginLeft="1dp"
    android:layout_marginTop="15dp"
    android:layout_marginEnd="1dp"
    android:layout_marginRight="1dp"
    android:layout_marginBottom="15dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.545"
    app:srcCompat="@drawable/qian" />
<Button
    android:id="@+id/btn10"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:text="會員卡"
    app:layout_constraintBottom_toBottomOf="@id/btn9"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="@+id/btn9"
    app:layout_constraintTop_toTopOf="@+id/btn9" />

 

8)我的訂單

 

 

 

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main4);
    Button btn2 = (Button) findViewById(R.id.btn2);
    Button btn3 = (Button) findViewById(R.id.btn3);
    btn2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(Main4Activity.this, Main3Activity.class);
            startActivity(i);
        }
    });
    btn3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(Main4Activity.this, Main6Activity.class);
            startActivity(i);
        }
    });

 

 

9)客服中心

 

 

 

<Button
    android:id="@+id/button"
    android:layout_width="match_parent"
    android:layout_height="91dp"
    android:text="顧客滿意度調查" />

<Button
    android:id="@+id/button3"
    android:layout_width="match_parent"
    android:layout_height="78dp"
    android:text="智能客服" />

<Button
    android:id="@+id/button4"
    android:layout_width="match_parent"
    android:layout_height="82dp"
    android:text="投訴建議" />

<TextView
    android:id="@+id/textView4"
    android:layout_width="match_parent"
    android:layout_height="38dp"
    android:text="  院線客服統一熱線     400-080-6060"
    android:textAppearance="@style/TextAppearance.AppCompat.Large" />

<TextView
    android:id="@+id/textView5"
    android:layout_width="match_parent"
    android:layout_height="41dp"
    android:text="  全國統一投訴熱線     400-009-5066"
    android:textAppearance="@style/TextAppearance.AppCompat.Large" />

五.技術說明

1、UI設計

 

 

 

 

 

 

 

 

 

 

 

 

主要代碼:

package com.example.film;

import android.os.Bundle;
import android.content.Intent;
import com.google.android.material.bottomnavigation.BottomNavigationView;

import androidx.appcompat.app.AppCompatActivity;
import androidx.annotation.NonNull;

import android.view.MenuItem;
import android.widget.TextView;

public class FilmActivity extends AppCompatActivity {
    private TextView mTextMessage;

    private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
            = new BottomNavigationView.OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            Intent intent = null;
            switch (item.getItemId()) {
                case R.id.navigation_home:
                    mTextMessage.setText(R.string.title_home);
                    return true;
                case R.id.navigation_dashboard:
                    mTextMessage.setText(R.string.title_dashboard);
                    intent = new Intent(FilmActivity.this,Main2Activity.class);
                    startActivity(intent);
                    return true;
                case R.id.navigation_piaojia:
                    mTextMessage.setText("票夾");
                    intent = new Intent(FilmActivity.this,Main5Activity.class);
                    startActivity(intent);
                    return true;

                    case R.id.navigation_notifications:
                    mTextMessage.setText(R.string.title_notifications);
                    intent = new Intent(FilmActivity.this,otherActivity.class);
                    startActivity(intent);
                    return true;
            }
            return false;
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_film);
        BottomNavigationView navView = findViewById(R.id.nav_view);
        mTextMessage = findViewById(R.id.message);
        navView.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
    }

 

2Activity組件的應用

 

 

 

 

主要代碼

public class FilmActivity extends AppCompatActivity {
    private TextView mTextMessage;

    private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
            = new BottomNavigationView.OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            Intent intent = null;
            switch (item.getItemId()) {
                case R.id.navigation_home:
                    mTextMessage.setText(R.string.title_home);
                    return true;
                case R.id.navigation_dashboard:
                    mTextMessage.setText(R.string.title_dashboard);
                    intent = new Intent(FilmActivity.this,Main2Activity.class);
                    startActivity(intent);
                    return true;
                case R.id.navigation_piaojia:
                    mTextMessage.setText("票夾");
                    intent = new Intent(FilmActivity.this,Main5Activity.class);
                    startActivity(intent);
                    return true;

                    case R.id.navigation_notifications:
                    mTextMessage.setText(R.string.title_notifications);
                    intent = new Intent(FilmActivity.this,otherActivity.class);
                    startActivity(intent);
                    return true;
            }
            return false;
        }
    };



3ListView的使用

 

 

 

 

主要代碼:

public class Main2Activity extends AppCompatActivity {
    private List<Film> consList = new ArrayList();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        initData();
        Toast.makeText(this,consList.size()+"",0).show();

        FilmAdpter adapter = new FilmAdpter(Main2Activity.this, R.layout.list_item, consList);
        //獲取ListView
        ListView listView = (ListView) findViewById(R.id.listView);
        //給ListView設置適配器
        listView.setAdapter(adapter);
    }

    private void initData(){
        Film yewen4 = new Film(1,"《葉問4》","該片講述了因故來到美國唐人街的葉問,意外卷入一場當地軍方勢力與華人武館的糾紛,葉問挺身而出,向世界證明了中國功夫。", R.drawable.yewen);
        consList.add(yewen4);

}

}

 

 

4、ListView適配器的使用:

 

 

 

 

 

 

主要代碼:

package com.example.film.adpter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.film.entity.Film;

import java.util.List;

import com.example.film.R;
public class FilmAdpter extends ArrayAdapter{
    private int resourceId;
    //參數1:當前Activity,參數2:layout文件的id,參數3:業務數據(List)
    public FilmAdpter(Context context, int resource, List objects) {
        super(context, resource, objects);
        resourceId = resource;
    }



    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        //獲取當前項的實體類對象
        Film cons= (Film) this.getItem(position);
        View view = LayoutInflater.from(getContext()).inflate(resourceId,null);
        //獲取布局內的控件
        ImageView consImage = (ImageView)view.findViewById(R.id.itemImage);
        TextView consName = (TextView)view.findViewById(R.id.itemName);
        TextView content = (TextView)view.findViewById(R.id.itemContent);
        //為布局內的控件設置實體對象中的數據
        consImage.setImageResource(cons.getImgId());
        consName.setText(cons.getConName());
        content.setText(cons.getContent());
        //將適配好的ListView返回
        return view;
    }
}

 

2、File存儲

主要代碼:

private ContactDao mContactDao;
private Button mBtnadd;
private Button mBtnupdata;
private Button mBtnquery;
private Button mBtndelete;
private EditText mName;
private EditText mPhone;
private TextView mTv;
private String name="";
private String phone="";
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mContactDao = new ContactDao(this);
    init();
    mTv.setText(mContactDao.Select(name));

}
private void init() {
    mName = (EditText) findViewById(R.id.name);
    mPhone = (EditText) findViewById(R.id.phone);
    mBtnadd =(Button) findViewById(R.id.btn_add);
    mTv = (TextView) findViewById(R.id.tv);
    mBtnupdata =(Button) findViewById(R.id.btn_updata);
    mBtnquery =(Button) findViewById(R.id.btn_query);
    mBtndelete =(Button) findViewById(R.id.btn_delete);
    mBtnadd.setOnClickListener(this);
    mBtnupdata.setOnClickListener(this);
    mBtnquery.setOnClickListener(this);
    mBtndelete.setOnClickListener(this);
}

 

static String DB_NAME = "itcase.db";
static int DB_VERSION = 1;
static String TABLE_NAME = "mysql";
static  String _NAME = "name";
static String _PHONE= "phone";

public DbDataBase(Context context) {
    super(context, DB_NAME, null, DB_VERSION);
    // TODO Auto-generated constructor stub
}

@Override
public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub
    db.execSQL("create table "+TABLE_NAME+"("+_ID+" integer primary key autoincrement,"+_NAME+" text ,"+_PHONE+" text)");

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub

 

3、SQLite數據庫

 

 

 

 

 

主要代碼:

 

package com.example.film;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class ContactDao {

    private static DbDataBase mDbDataBase;

    public ContactDao(Context c){
        mDbDataBase = new DbDataBase(c);
    }
    public static boolean Insert(String name ,String phone) {
        SQLiteDatabase db = mDbDataBase.getWritableDatabase();
//       db.insert(table, nullColumnHack, values) 三個參數 分別是表名 返回的是一個 插入字段的id 但插入錯誤的時候 返回的時候-1
//         nullColumnHack 比如 放了 username 那么usename 就不得為空 如果為空 那么就有字段可以為空
//          valuse 是一個     ContentValues values = new ContentValues(); 一個對象 向里面填要填加的數據
        ContentValues values = new ContentValues();
        values.put(DbDataBase._NAME, name);
        values.put(DbDataBase._PHONE, phone);
        long InsertId = db.insert(DbDataBase.TABLE_NAME, null, values);
        return InsertId!=-1;
    }
    public static boolean Updata(String name,String phone) {
        SQLiteDatabase db = mDbDataBase.getWritableDatabase();
//      db.update(table, values, whereClause, whereArgs); 四個參數  前兩個同上 返回的是修改的那條數據的id 要是修改出錯是 id=0
//         后兩個whereClause 是sql語句中的where 語句   whereArgs是 where語句綁定值 where語句綁定值 new String[]{username}
        ContentValues values = new ContentValues();
        values.put(DbDataBase._PHONE, phone);
        int Uqdata =db.update(DbDataBase.TABLE_NAME, values, DbDataBase._NAME+"=?",  new String[]{name});
        return Uqdata>0;
    }
    public static boolean Delete(String name) {
        SQLiteDatabase db = mDbDataBase.getWritableDatabase();
//      db.delete(table, whereClause, whereArgs) 三個參數 同上; 返回的是刪除的那個id 要是刪除出錯 返回 0
        int DeleteID =db.delete(DbDataBase.TABLE_NAME, DbDataBase._NAME+"=?", new String[]{name});
        return DeleteID>0;
    }
    public static String Select (String name) {
        SQLiteDatabase db=mDbDataBase.getReadableDatabase();
//      db.query(table, columns, selection, selectionArgs, null, null, null); 后三參數個為空
//         第一個是表名 第二個是 返回的數據 第三個 查詢條件  第四個是查詢條件的值
        Cursor cusor = null;
        String text ="";

        cusor = db.query(DbDataBase.TABLE_NAME, null, null, null, null, null, null);

//          cusor = db.query(DbDataBase.TABLE_NAME, new String[] {DbDataBase._NAME,DbDataBase._PHONE},
//                  DbDataBase._NAME+"=?",new String[]{name}, null, null, null);

        while (cusor.moveToNext()){
            int nameIntdex = cusor.getColumnIndex(DbDataBase._NAME);
            text+=("name: "+cusor.getString(nameIntdex)+"\n");
            int phoneIndex = cusor.getColumnIndex(DbDataBase._PHONE);
            text+=("phone: "+cusor.getString(phoneIndex)+"\n");
        }
        return text;


    }

 

 

public class DbDataBase extends SQLiteOpenHelper implements BaseColumns{

    static String DB_NAME = "itcase.db";
    static int DB_VERSION = 1;
    static String TABLE_NAME = "mysql";
    static  String _NAME = "name";
    static String _PHONE= "phone";

    public DbDataBase(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL("create table "+TABLE_NAME+"("+_ID+" integer primary key autoincrement,"+_NAME+" text ,"+_PHONE+" text)");

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub

    }

}

 

 

 .項目總結

課程設計的過程中,我遇到了很多問題,通過查閱參考書和的指導,都得到了解決。這不僅僅鍛煉了我分析問題和解決問題的能力,也使我意識到自己對知識的了解程度遠了,知識的缺乏也在很多方面。以后我一定會努力提高自己的理論水平,同時盡可能多地讀一些科學書籍,提高自己的理論水平和動手實踐能力。由於時間的限制,解決這個問題和本文不能被稱為完美。在許多地方還有待闡述,修改和完善

 

 

附錄:

一、清單文件

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.film">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".Main2Activity"></activity>
        <activity android:name=".Main10Activity" />
        <activity android:name=".Main9Activity" />
        <activity android:name=".Main8Activity" />
        <activity android:name=".Main7Activity" />
        <activity android:name=".Main5Activity" />
        <activity android:name=".Main6Activity" />
        <activity android:name=".Main4Activity" />
        <activity android:name=".Main3Activity" />
        <activity
            android:name=".FilmActivity"
            android:label="@string/title_activity_film" />
        <activity android:name=".otherActivity" />
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

、布局文件目錄

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM