id="@+id/button3"
android:
layout_marginBottom="20dip"
android:
text="增加联系人"
android:
textColor="#0000ff"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"/>
2.3.2增加联系人功能
在通讯录中最主要的功能操作,也就是联系人的添加操作的功能,在联系人增加界面中点击保存按钮实现对联系人信息的保存。
首先在user类中定义了一个user函数从表单中获取数据,建立数据库帮助类,打开数据库并将user保存到数据库中,增加界面如图2-1所示。
图2-1增加联系人界面
2.3.3删除联系人功能
通过光标选择删除的联系人,点击联系人然后选择删除可以删除联系人,并且在数据库中删除联系人,删除联系人功能如图2-2所示
2.3.4查找联系人功能
在查找功能实现的过程中,我先将搜索框中的内容转化为字符串形式,如果输入为空就设置显示所有联系人的列表,否则就建立一个数据库帮且类,在数据库中进行查找匹配,返回到list列表中,将整合的adapter和listview结合展现出来,并统计查找到的条数展现给用户。
2.3.5Menu底部菜单框功能
下面我们将介绍menu的触发方式,通过对menu的介绍,我们将了解menu功能设计,对menu键的使用首先要建立menu菜单,为每个菜单选项绑定了一个图标和文字,代码如下底部菜单如图2-3所示。
2.3.6通信功能
下面的程序定义了用户打电话,发邮件,发短信的功能,如下的代码主要是运用了android操作系统自定义接口,运用这些接口可以实现用户的打电话、发短信、发邮件的功能。
publicclassSendMessageextendsActivity{
privateTextViewnameText=null;
privateEditTextmyEditText=null;
privateEditTextEditText2=null;
privateButtonmyButton=null;
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.sentmassage);
Intentintent=getIntent();
Stringphone_num=intent.getStringExtra("phone_num");
Stringname=intent.getStringExtra("name");
System.out.println("----传过来的短信号码----:
"+phone_num);
System.out.println("----传过来的名字----:
"+name);
nameText=(TextView)findViewById(R.id.nameText);
myButton=(Button)findViewById(R.id.sent_button);
myEditText=(EditText)findViewById(R.id.phone_edit);
EditText2=(EditText)findViewById(R.id.text_edit);
nameText.setText(name+":
"); //将名字显示
myEditText.setText(phone_num);//将号码填上
myButton.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
Stringmobile=myEditText.getText().toString();
Stringcontent=EditText2.getText().toString();
SmsManagersms=SmsManager.getDefault();
PendingIntentsentintent=PendingIntent.getBroadcast(SendMessage.this,0,newIntent(),0);
try{
if(content.length()>70){
Listmsgs=sms.divideMessage(content);
for(Stringmsg:
msgs){
sms.sendTextMessage(mobile,null,msg,sentintent,null);
Toast.makeText(SendMessage.this,"短信正在发送",2).show();
}
}else{
sms.sendTextMessage(mobile,null,content,sentintent,null);
}
}catch(Exceptione){
e.printStackTrace();
}
Toast.makeText(SendMessage.this,"短信发送成功",2).show();
}
});
}
2.3.8数据库操作实现
为了实现联系人在数据库中的增加,删除,查找等操作,使用操作数据库的核心类android.database.sqlite.SQLiteDatabase。
使用SQLiteOpenHelper的子类来完成创建、打开数据库及各种对数据库的操作。
数据库的类继承函数,显示了数据库类的继承关系:
packageahpu.wang.db;
importandroid.content.Context;
importandroid.database.sqlite.SQLiteDatabase;
importandroid.database.sqlite.SQLiteOpenHelper;
importandroid.database.sqlite.SQLiteDatabase.CursorFactory;
//DatabaseHelper作为一个访问SQLite的助手类,提供两个方面的功能,
//第一,getReadableDatabase(),getWritableDatabase()可以获得SQLiteDatabse对象,通过该对象可以对数据库进行操作
//第二,提供了onCreate()和onUpgrade()两个回调函数,允许我们在创建和升级数据库时,进行自己的操作
publicclassDatabaseHelperextendsSQLiteOpenHelper{
privatestaticfinalintVERSION=1;
//在SQLiteOepnHelper的子类当中,必须有该构造函数
publicDatabaseHelper(Contextcontext,Stringname,CursorFactoryfactory,
intversion){
//必须通过super调用父类当中的构造函数
super(context,name,factory,version);
}
publicDatabaseHelper(Contextcontext,Stringname){
this(context,name,VERSION);
}
publicDatabaseHelper(Contextcontext,Stringname,intversion){
this(context,name,null,version);
}
//该函数是在第一次创建数据库的时候执行,实际上是在第一次得到SQLiteDatabse对象的时候,才会调用这个方法
publicvoidonCreate(SQLiteDatabasedb){
System.out.println("createaDatabase");
//execSQL函数用于执行SQL语句
db.execSQL("createtableuser(namevarchar(20),phonetext,qqtext,mailtext,addresstext)");
}
publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){ System.out.println("updateaDatabase");
}
}
第3章 系统编码实现
3.1系统功能的实现代码
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imagebutton1=(ImageButton)findViewById(R.id.imagebutton1);
imagebutton2=(ImageButton)findViewById(R.id.imagebutton2);
imagebutton3=(ImageButton)findViewById(R.id.imagebutton3);
imagebutton1.setOnClickListener(newMyOnClickListener());
imagebutton2.setOnClickListener(newMyOnClickListener());
imagebutton3.setOnClickListener(newMyOnClickListener());
}
classMyOnClickListenerimplementsOnClickListener{
publicvoidonClick(Viewv){
switch(v.getId()){
caseR.id.imagebutton1:
//直接跳转到联系人列表
Intentintent1=newIntent();
intent1.putExtra("Search_flag",0);
intent1.setClass(MainActivity.this,Address_Book.class);
startActivity(intent1);
break;
caseR.id.imagebutton2:
//跳到查找联系人对话框,传个标志Search_flag到列
Intentintent2=new