zoukankan      html  css  js  c++  java
  • 实验8 SQLite数据库操作

    实验报告

    课程名称

    实验8  SQLite数据库操作

    实验日期

    2016.5.6

    实验项目名称

    多媒体应用开发

    实验地点

    S30010

    实验类型

    □验证型    √设计型    □综合型

    学  时

    一、实验目的及要求(本实验所涉及并要求掌握的知识点)

    设计一个个人通讯录,掌握Android平台下的数据库开发,该个人通讯录主要包括联系人列表和联系人详细信息等界面。程序主界面是通讯录的目录显示手机上联系人的名称。点击联系人的姓名可以显示联系人的详细信息。在按了MEMU键之后会弹出菜单栏。单击菜单栏上的按钮可以添加联系人和删除联系人

    二、实验环境(本实验所使用的硬件设备和相关软件)

    (1)PC机

    (2)操作系统:Windows XP

    (3)软件: Eclipse, JDK1.6,Android SDK,ADT

    三、实验内容及步骤

    (1)确定数据库的数据结构。

    (2)定义字符串资源string.xml

    (3)开发布局文件activity_main.xml用于显示联系人列表。

    (4)layout目录下新建一个tvdetail.xml,用于显示联系人详细信息.

    四、实验结果(本实验源程序清单及运行结果或实验结论、实验设计图)

    代码:

    MainActivity代码:

    public class MainActivity extends Activity {

        private ListView lv;

        protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.activity_main);

            lv=(ListView)findViewById(R.id.lv);

            lv.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_single_choice));

            lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

            final ArrayList<HashMap<String, Object>> listItem=new ArrayList<HashMap<String,Object>>();   

            for (int i = 0; i < 3; i++) {

                HashMap<String, Object> map=new HashMap<String, Object>();

                map.put("DetailName", R.id.editText1);  

                map.put("DetailMobile", R.id.editText2);

                listItem.add(map);    

            }

            SimpleAdapter simpleAdapter=new SimpleAdapter(MainActivity.this, listItem, R.layout.item,

            new String[]{"DetailName","DetailMobile"} , new int[]{R.id.editText1,R.id.editText2});

            lv.setAdapter(simpleAdapter);   //为ListView绑定适配器

            lv.setOnItemClickListener(new OnItemClickListener() {

     

                public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {

                    Intent intent=new Intent();

                    intent.setClass(MainActivity.this, DetailActivity.class);

                    startActivity(intent);

                    finish();

                }

            });

        }

        @Override

        public boolean onCreateOptionsMenu(Menu menu) {

                    getMenuInflater().inflate(R.menu.main, menu);

            return super.onCreateOptionsMenu(menu);

        }

        public boolean onOptionsItemSelected(MenuItem item){

            item.setChecked(true);

            switch (item.getItemId()) {

            case R.id.menu1:

                item.setChecked(true);

                Intent intent=new Intent();

                intent.setClass(MainActivity.this, DetailActivity.class);

                startActivity(intent);

                MainActivity.this.finish();

                break;

            case R.id.menu2:

                item.setChecked(true);

                break;

            default:

                break;

            }

            return super.onOptionsItemSelected(item);

        }

    }

       

    DetailActivity代码:

    public class DetailActivity extends Activity{

         private EditText name;

         private EditText mobil;

         private EditText email;

         private EditText address;

         private EditText company;

         private MyOpenHelper helper;

         private Button savebtn;

        protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.tvdetail);

            name=(EditText)findViewById(R.id.editText1);

            mobil=(EditText)findViewById(R.id.editText2);      

            email=(EditText)findViewById(R.id.editText3);

            address=(EditText)findViewById(R.id.editText4);

            company=(EditText)findViewById(R.id.editText5);

            savebtn=(Button)findViewById(R.id.button1);

            savebtn.setOnClickListener(new OnClickListener() {

                public void onClick(View arg0) {

                    helper=new MyOpenHelper(DetailActivity.this, "contacts.db",null, 1);

                       SQLiteDatabase db = helper.getReadableDatabase();     //获得可读的数据库

                       ContentValues values = new ContentValues();

                       String name2=name.getTag().toString();

                       String mobile2=mobil.getTag().toString();

                       String email2=email.getTag().toString();

                       String addr2=address.getTag().toString();

                       String comp2=company.getTag().toString();

            

                       if (name2.equals("")||mobile2.equals("")||email2.equals("")||addr2.equals("") ){  

                            Toast.makeText(DetailActivity.this, "请输入联系人信息",Toast.LENGTH_LONG).show();}

                        else {

                                 Cursor cursor=db.rawQuery("select * from contacts where name=? ",new String[]{name2});

                        if (cursor.getCount()<=0) {                              

    values.put("name",name.getText().toString());    

                                values.put("mobile",mobil.getText().toString());

                                values.put("email", email.getText().toString());

                                values.put("address",address.getText().toString());

                                db.insert("contacts", null, values);

                                values.clear();

                                Toast.makeText(DetailActivity.this, "保存成功",Toast.LENGTH_LONG).show();

                            }else {                                                 

                                Toast.makeText(DetailActivity.this, "已存在该联系人",Toast.LENGTH_LONG).show();}

                        }         }

            });

        }

        protected void onDestroy() {

            super.onDestroy();}

    }

     

    MyOpenHelper代码:

     

    public class MyOpenHelper extends SQLiteOpenHelper{

        public static final String CREATE__CONTACTS="create table contacts(id integer primary key autoincrement,name,mobile,email,address)";

        private Context myContext;

     

        public MyOpenHelper(Context context, String name, CursorFactory factory,

                int version) {

            super(context, name, factory, version);

            myContext=context;

            }

        @Override

        public void onCreate(SQLiteDatabase db) {

            db.execSQL(CREATE__CONTACTS);

            Toast.makeText(myContext, "成功", Toast.LENGTH_LONG).show();

        }

        public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {

            // TODO Auto-generated method stub}

    }

     

     

    运行结果:(截图)

     

     

     

    五、实验总结(对本实验结果进行分析,实验心得体会及改进意见)

    本次试验并未能全部完成,Layout中的布局能实现,在增加联系人的功能中,方法和代码都基本理解并写出,但在运行时候出现崩溃现象,仍在进一步调试中。

    实验评语

     

    实验成绩

     

    指导教师签名:              年   月   日

               
  • 相关阅读:
    富文本
    管理员状态
    分页
    tp。3.2中的模板基础
    get和post之间的区别
    RegExp
    获取各种类型的节点
    节点的层次关系
    创建元素节点
    JavaScript 正则
  • 原文地址:https://www.cnblogs.com/jingwenyim/p/5487830.html
Copyright © 2011-2022 走看看