滁州学院毕业论文
android:id=\ android:layout_width=\ android:layout_height=\
android:src=\默认图片
android:scaleType=\按比例缩放图片,保持图片的尺寸比例 >
android:id=\ android:layout_width=\ android:layout_height=\ android:scrollbars=\ android:hint=\姓名\当文本内容为空时,出现的提示信息 android:gravity=\置顶垂直排列 android:layout_gravity=\排列居中 android:layout_width=\ android:layout_height=\ android:orientation=\ android:layout_marginRight=\ android:layout_marginLeft=\ android:layout_height=\ android:layout_width=\ android:text=\手机:\ android:textSize=\ android:id=\ android:layout_width=\ android:layout_height=\ android:scrollbars=\ android:gravity=\手机\ android:phoneNumber=\只能输入数字 17 /> 滁州学院毕业论文 android:layout_width=\ android:layout_height=\ android:orientation=\ android:layout_marginLeft=\ android:layout_marginRight=\ 5.2.2增加联系人功能 在通讯录中最主要的功能操作,也就是联系人的添加操作的功能,在联系人增加界面中点击保存按钮实现对联系人信息的保存。首先在user类中定义了一个user函数从表单中获取数据,建立数据库帮助类,打开数据库并将user保存到数据库中,增加界面如图5-1所示。 btn_save.setOnClickListener(new OnClickListener(){ public void onClick(View v) {//判断姓名是否为空 String name = et_name.getText().toString();//将et_name读取的文本转化为字符串 if(name.trim().equals(\如果读取的字符串为空 Toast.makeText(AddNew.this, \姓名不能为空\ return;} //从表单上获取数据 User user = new User();//在user类中定义了一个user函数 user.username = name; user.address = et_address.getText().toString(); 18 滁州学院毕业论文 user.company = et_company.getText().toString(); user.email = et_email.getText().toString(); user.familyPhone = et_familyPhone.getText().toString(); user.mobilePhone = et_mobilePhone.getText().toString(); user.officePhone = et_officePhone.getText().toString(); user.otherContact = et_otherContact.getText().toString(); user.position = et_position.getText().toString(); user.remark = et_remark.getText().toString(); user.zipCode = et_zipCode.getText().toString(); //判断头像是否改变,若改变,则用当前的位置,若没有改变,则用前一回的位置 if(imageChanged) { user.imageId = images[currentImagePosition%images.length];} else { user.imageId = images[previousImagePosition%images.length];} //创建数据库帮助类 DBHelper helper = new DBHelper(AddNew.this); //打开数据库 helper.openDatabase(); //把user存储到数据库里 long result = helper.insert(user); //通过结果来判断是否插入成功,若为-1,则表示插入数据失败 if(result == -1 ) { Toast.makeText(AddNew.this, \添加失败\ setTitle(\用户添加成功!\ setResult(3); //返回到上一个Activity,也就是Main.activity finish();//销毁当前视图} }); 19 滁州学院毕业论文 图5-1 增加联系人界面 5.2.3删除联系人功能 通过光标选择删除的联系人,点击联系人然后选择删除可以删除联系人,并且在数据库中删除联系人,删除联系人功能如图5-2所示。 if(deleteId == null || deleteId.size() == 0) { Toast.makeText(Main.this, \没有标记任何记录\\n长按一条记录即可标记\Toast.LENGTH_LONG).show();} else { new AlertDialog.Builder(Main.this) setTitle(\确定要删除标记的\条记录吗?\ .setPositiveButton(\确定\ public void onClick(DialogInterface dialog, int which) { DBHelper helper = new DBHelper(Main.this); helper.deleteMarked(deleteId); list = helper.getAllUser(privacy); //重置视图 adapter = new SimpleAdapter(Main.this, list, R.layout.listitem, newString[]{\ new int[]{R.id.user_image,R.id.tv_name,R.id.tv_mobilephone}); lv.setAdapter(adapter); deleteId.clear();}}) .setNegativeButton(\取消\ 20 滁州学院毕业论文 .create() .show() ; } break; 图5-2 删除联系人界面 5.2.4查找联系人功能 在查找功能实现的过程中,我先将搜索框中的内容转化为字符串形式,如果输入为空就设置显示所有联系人的列表,否则就建立一个数据库帮且类,在数据库中进行查找匹配,返回到list列表中,将整合的adapter和listview结合展现出来,并统计查找到的条数展现给用户。 private void loadSearchLinearout() { if(searchLinearout == null) { searchLinearout = (LinearLayout) findViewById(R.id.ll_search);//通过ID找到searchLinearout的布局 et_search = (EditText)findViewById(R.id.et_search);//通过ID找到et_search的布局 et_search.setOnKeyListener(new OnKeyListener(){//设置et_search的监听器 public boolean onKey(View arg0, int arg1, KeyEvent arg2) { String condition = et_search.getText().toString();//获取et_search输入框的输入内容 if(condition.equals(\如果输入的为空 lv.setAdapter(adapter);//设置显示所有数据的listview列表的适配器} DBHelper helper = new DBHelper(Main.this);//获取数据库对象 list = helper.getUsers(condition,privacy);//获取用户列表 SimpleAdapter searchAdapter = new SimpleAdapter(Main.this, list, R.layout.listitem, new String[]{\ new int[]{R.id.user_image,R.id.tv_name,R.id.tv_mobilephone}); lv.setAdapter(searchAdapter); //将整合好的adapter交给listview,显示给用户看 if(list.size() == 0) { Drawable nodata_bg = getResources().getDrawable(R.drawable.nodata_bg);//获取图片资源 mainLinearLayout.setBackgroundDrawable(nodata_bg);//设置layout的背景 setTitle(\没有查到任何数据\ } else {setTitle( \共查到 \条记录\ mainLinearLayout.setBackgroundDrawable(null);} 21