如何制作手机通讯录

zwz1110 2017-11-08 10:38:00
package com.example.contacts.activity;

import java.util.List;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.Toast;


import com.example.contacts.R;
import com.example.contacts.adapter.UserAdapter;
import com.example.contacts.biz.ContactsBiz;
import com.example.contacts.biz.ContactsBizImpl;
import com.example.contacts.dao.ContactDao;
import com.example.contacts.dao.DBOpenHelper;
import com.example.contacts.entity.User;

public class MainActivity extends Activity {
private ListView listView;
private BaseAdapter listViewAdapter;//listview的适配器
private User users ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

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

}



@Override
protected void onStart() {
loadContacts();
super.onStart();
}



//给ListView装载数据
private void loadContacts() {
//调用事务层的功能去获得数据
ContactsBiz contactsBiz = new ContactsBizImpl(this);
final List<User> users = contactsBiz.getAllUsers();

if(users==null||users.size()==0) return;

listViewAdapter = new UserAdapter(this,users);
listView.setAdapter(listViewAdapter);
}

/**
* 创建选项菜单
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(Menu.NONE, 1, Menu.NONE, "添加");
menu.add(Menu.NONE, 2, Menu.NONE, "编辑");
menu.add(Menu.NONE, 3, Menu.NONE, "查看信息");
menu.add(Menu.NONE, 4, Menu.NONE, "删除");
menu.add(Menu.NONE, 5, Menu.NONE, "查询");
menu.add(Menu.NONE, 6, Menu.NONE, "导入到手机电话簿");
menu.add(Menu.NONE, 7, Menu.NONE, "退出");
return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case 1:
//添加联系人
Intent intent = new Intent(this,AddContactsActivity.class);
startActivity(intent);
break;
case 2:
//TODO 修改联系人信息
break;
case 3:
//TODO 查看联系人信息
break;
case 4:
//TODO 删除联系人
delete();
break;
case 5:
//TODO 查询联系人
break;
case 6:
//TODO 将联系人导入到手机电话簿
break;
case 7:
finish();
}
return super.onOptionsItemSelected(item);
}



private void delete() {

// ct.delete("TABLE_CONTACT", "FIELD_ID=?", new String[]{id});
Builder alert = new AlertDialog.Builder(this);
alert.setTitle("系统信息");
alert.setMessage("是否要删除联系人?");
alert.setPositiveButton("是",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
ContactDao ct=new ContactDao(MainActivity.this);
//删除联系人信息
ct.delete(getString(users.getId()));
}
});

//我不知道怎么在菜单中点击删除会执行上面的delete

}

}
...全文
606 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
窃格瓦拉 2017-11-10
  • 打赏
  • 举报
回复
你在menu里面点击弹出个删除,你是要删除整个listview吗?你就没有选择删除那一条,怎么删除?还不如把添加.删除,更改逻辑都加在listview的条目上,写在listView.setOnItemClickListener()里面,如果你非要用menu的话,你的这个listview要有浏览模式和修改模式,删除.更改,查看单个联系人信息的时候,用修改模式(也就是在每个条目上加个标记,标记是否选中),平时用浏览模式.不过这样很麻烦.
r00_a2lBUR 2017-11-10
  • 打赏
  • 举报
回复
到资源那里查一下,应该会有现成的Demo
Android开发实验---通讯录 实验报告 通讯录 姓名: 学号: 课程名称: 移动应用开发 所在学院: 信息科学与工程学院 专业班级: 计算机 任课教师: Android开发实验---通讯录全文共25页,当前为第1页。 Android开发实验---通讯录全文共25页,当前为第1页。 实验项目名称 通讯录 实验目的与要求: 目的:练习掌握 Android 软件开发基本编程技术、Android 系统 SQLite 数据库的使用、通话、短信的使用等,设计制作一 Android 通讯录软件。 要求: (1)每位同学独立设计软件功能、完成软件的开发与测试。 (2)软件完成后由任课教师检查、提问软件功能、软件的设计和开发的代码。(3)每位同学独立完成实验报告(包括学号、姓名,实验目的、实验内容、软件功能、设计思想、实验总结等),并将实验报告和开发软件的工程文件压缩包提交任课教师。 实验设备及软件: 一台电脑,Androidstudio2.3.3软件 实验方法(原理、流程图) 实现的通讯录功能和界面可在实验开发中由每位同学自己设计,但必须使用 SQLite 数据库保存通讯录信息。 以下功能和软件界面供参考:仿照一般手机通讯录的使用界面和功能,主要功能可包括: (1)可以添加、删减联系人 (2)联系人的信息包括:姓名、手机号码、工作单位、群组、电子邮件、手机铃声 (3)选择联系人后,可以快速进行操作,如:拨打电话发送短信、查看详细、移出群组、移动分组、删除联系人等。查看详细时显示手机号码、群组、和设定的手机铃声以及同该联系人的通话记录。 (4)在联系人界面,可以查看各群组。点击群组,跳出对应联系人。 (5)有拨号键盘,点击数字将号码显示出来,并可以对手机号码进行删减 (6)可以发送信息,显示信息记录 (7)发送信息时,可以快速选择现有联系人。 实验过程、步骤及内容 通讯录界面要求布局合理简约,颜色舒,控制按钮简单明了,让用户一眼就能看出各个按钮的作用及操方法。能实要求的功能,但又不重复。要考到不同手机屏幕大小可能不一样,应尽兼容大多数手机屏幕尺寸,使之显示无障碍。 实现思路与简单设计 1. 关于通讯录获取联系人信息以及联系人信息的存储结构的分析。 2. 解决添加联系人的表中添加数据以及读取已保存的数据 3. 实现通讯录的基本功能的具体实现。 4. 对通讯录界面的具体设计,给人一种方便的操作通道。 5. 灵活应用各种系统库函数实现完整的通讯录。 Android开发实验---通讯录全文共25页,当前为第2页。开发流程图: Android开发实验---通讯录全文共25页,当前为第2页。 主要功能分析: 增加、删除、编联系人 点击通信录界面中的增加按钮,入增加联系人面。输入联系人的基本信息,并可根据用户需求增加个性化信息如头像、姓名、手机号码、办室电话、家庭电话、职务职称、单位名称、地址、邮政编码、Email、其他联系方式、备注这些信息,击确认返回主界面。点击通信录中一个已存在的联系人,进入联系人编辑界面,可修改系人的资料或进行删除联系人操作,完成后退回到主界面。对列表中联系人的标记,点mnu键弹出功能界面上的删除按键也可进行删除。还可以在菜单上选择删除全部联系人清空通讯录。在删除联系人的过程中,系统将提示用户是否继续操作,若放弃操作,则系人信息将继续保存。 2、查找联系人 用户点击menu键打开底部菜单框,底部菜单框为查询系人提供入口,进入通讯录的缺省页面为联系人列表,在列表中看到所有联系人的姓名、电话息排列,用户点击查找按键输入联系人基本信息,,通讯录显所有符合查询条件的联系人列表,用户选择一个联系人进入联系人基本信息页面进行其他操作;查询完成,用户按返回键返回主界面。 3、通功能 用户在通录选择联系人进入联系详细信息界面,这时点击menu键打开通信功能框,选择打电话、发信息的功能进行操作。 4、菜单能 通过对menu按的点击,显示底部菜框,包含有增加查找、除、菜单、返回功能,菜单按键则包含显示所有、删除所有等实用功能。 增加联系人: 这个功能由ContactAdder类完成,具体实现不是比较麻烦,保存动作由ContentResolver类解决,但实现方式有所不同,可分为一次性批量增加与挨个增加。 由于界面设置繁琐,代码页过多,所以挑出其中的一部分进行说明 首先是DB数据库建库过程: Android开发实验---通讯录全文共25页,当前为第3页。package com.xample.hivian.my_contact_manager.models.db; import android.content.ContentValues; import android.database.Cursor; import android.database.

80,348

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧