手机拨号器的制作

一个可打电话,发短信、读取通讯录的小程序。

手机拨号器的制作流程:

1.实现拨号器的页面布局

2.对按钮进行监听

3.实现编辑框的输入

4.实现对每一个数字按键的绑定

5.实现删除功能

6.实现拨号功能(添加权限)

7.实现添加联系人功能

扫描二维码关注公众号,回复: 433057 查看本文章

8.实现发短信功能(新建xml页面,页面跳转)

9.实现发邮件功能

10.手残关闭了eclipse左侧窗口怎么办

11.通信录

1.实现拨号器的页面布局

activity_main.xml

<LinearLayout  //线性布局
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        android:orientation="horizontal" >  //水平布局       
   
        <Button  
            android:id="@+id/contact"  
            android:layout_width="fill_parent"  
            android:layout_height="60dp"  
            android:layout_weight="1" //布局比重
            android:text="联系人"/>  
            
         <Button  
            android:id="@+id/cai"  
            android:layout_width="fill_parent"  
            android:layout_height="60dp"  
            android:layout_weight="1" 
            android:text="彩信"/>  
            
        <Button  
            android:id="@+id/mail"  
            android:layout_width="fill_parent"  
            android:layout_height="60dp"  
            android:layout_weight="1" 
            android:text="邮件"/> 
    </LinearLayout>  

    <EditText
        android:id="@+id/et_showview"
        android:layout_width="fill_parent"
        android:layout_height="120dip"
        android:layout_marginTop="20dip"
        android:ems="10"  //设置EditText的宽度为10个字符的宽度,超出的部分将不显示        
        android:background="#ffffffff"  //背景色
        android:textSize="40sp"  //字体大小
        android:textStyle="bold"  //字体加粗
        android:textColor="#ff333333" >  //字体颜色
        <requestFocus />   //获得输入的光标
    </EditText>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginTop="20dip"
        android:gravity="center_horizontal" //水平居中
        android:orientation="vertical" >  //垂直布局

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:orientation="horizontal" >

            <Button
                android:layout_width="fill_parent"
                android:layout_height="60dp"
                android:layout_weight="1"
                android:id="@+id/btn_1"
                android:text="1" />

            <Button
                android:layout_width="fill_parent"
                android:layout_height="60dp"
                android:layout_weight="1"
                android:id="@+id/btn_2"
                android:text="2" />

            <Button
               android:layout_width="fill_parent"
               android:layout_height="60dp"
               android:layout_weight="1"
               android:id="@+id/btn_3"
               android:text="3" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dip"
            android:gravity="center_horizontal"
            android:orientation="horizontal" >

            <Button
                android:layout_width="fill_parent"
                android:layout_height="60dp"
                android:layout_weight="1"
                 android:id="@+id/btn_4"
                android:text="4" />

            <Button
                android:layout_width="fill_parent"
                android:layout_height="60dp"
                android:layout_weight="1"
                 android:id="@+id/btn_5"
                android:text="5" />          

            <Button
                android:layout_width="fill_parent"
                android:layout_height="60dp"
                android:layout_weight="1"
                android:id="@+id/btn_6"
                android:text="6" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dip"
            android:gravity="center_horizontal"
            android:orientation="horizontal" >

            <Button
                android:layout_width="fill_parent"
                android:layout_height="60dp"
                android:layout_weight="1"
                android:id="@+id/btn_7"
                android:text="7" />

            <Button
                android:layout_width="fill_parent"
                android:layout_height="60dp"
                android:layout_weight="1"
                android:id="@+id/btn_8"
                android:text="8" />

            <Button
                android:layout_width="fill_parent"
                android:layout_height="60dp"
                android:layout_weight="1"
                android:id="@+id/btn_9"
                android:text="9" />
        </LinearLayout>
        
         <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dip"
            android:gravity="center_horizontal"
            android:orientation="horizontal" >

            <Button
                android:layout_width="fill_parent"
                android:layout_height="60dp"
                android:layout_weight="1"
                android:id="@+id/btn_xing"
                android:text="*" />

            <Button
                android:layout_width="fill_parent"
                android:layout_height="60dp"
                android:layout_weight="1"
                android:id="@+id/btn_0"
                android:text="0" />
         
            <Button
               android:layout_width="fill_parent"
               android:layout_height="60dp"
               android:layout_weight="1"               
               android:id="@+id/btn_jing"
               android:text="#" />
        </LinearLayout>
        
          <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dip"
            android:gravity="center_horizontal"
            android:orientation="horizontal" >

            <Button
                android:layout_width="fill_parent"
                android:layout_height="60dp"
                android:layout_weight="1"
                android:id="@+id/btn_dial"
                android:text="拨号" />

            <Button
                android:layout_width="fill_parent"
                android:layout_height="60dp"
                android:layout_weight="1"
                android:id="@+id/btn_mes"
                android:text="信息" />          

            <Button
               android:layout_width="fill_parent"
               android:layout_height="60dp"
               android:layout_weight="1"
               android:id="@+id/btn_del"
               android:text="删除" />
        </LinearLayout>        
          
    </LinearLayout>
  运行到手机上的界面如下:

  以下代码参照学姐博客   http://429899791.iteye.com/blog/2206277   2.对按钮进行监听 给联系人按钮添加:android:onClick="addContact" 给彩信按钮添加:android:onClick="cai"  给邮件按钮添加:android:onClick="sendmail"  给拨号按钮添加:android:onClick="dial" 给删除按钮添加:android:onClick="delete" 给其余数字按钮添加:android:onClick="digital_click" 3.实现编辑框的输入 MainActivity.java
public class MainActivity extends Activity {	
	
	EditText textResult;//显示框
	StringBuffer currentNum=new StringBuffer();//用于接收输入
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);//保存Activity的状态
		setContentView(R.layout.activity_main);
		
		textResult=(EditText)findViewById(R.id.et_showview);		
	}
}
  4.实现对每一个数字按键的绑定 接下来就是每一个数字按键绑定的方法处理,每按一个键,就记录下text,然后添加到StringBuffer里面 MainActivity.java
public void digital_click(View view){
		
		Button btnDigital=(Button) view;
		String text=btnDigital.getText().toString();
		currentNum.append(text);
		display();		
	}
 并显示到编辑框上
private void display() {
		// TODO Auto-generated method stub
		
		textResult.setText(currentNum.toString());
	}
  5.实现删除功能 MainActivity.java
public void delete(View view){
		
		if(currentNum.length()>=1){
			currentNum.delete(currentNum.length()-1, currentNum.length());			
		}
		
		if(currentNum.length()==0){
			Toast toast=Toast.makeText(this,"请输入号码", 100);
			toast.show();
			display();
		}
		textResult.setText(currentNum);
	}
  迫不及待的想运行一下了


按删除键后

  6.实现拨号功能(添加权限) 接下来就是最重要的部分了,拨号键绑定方法: MainActivity.java
public void dial(View view){
		
		EditText text=(EditText)findViewById(R.id.et_showview);
		String number=text.getText().toString();
		if(currentNum.length()==0){
			Toast toast=Toast.makeText(this,"请输入号码", 100);
			toast.show();
			display();
		}
		else{
			Intent intent=new Intent();
			intent.setAction(Intent.ACTION_CALL);//设置事件跳转到系统默认的拨号页面
			intent.setData(Uri.parse("tel:"+number));//传送数据
			startActivity(intent);
			//方法内部会自动为Intent添加类别:android.intent.categoty.DEFAULT			
		}				
	}
  接下来是很重要的部分,添加权限 AndroidManifest.xml
<uses-permission 
android:name="android.permission.CALL_PHONE" />
  赶紧给你的朋友打个电话试一下

 


  7.实现添加联系人功能 MainActivity.java
public void addContact(View view){
		Intent it=new Intent(Intent.ACTION_INSERT,Uri.withAppendedPath(Uri.parse("content://com.android.contacts"), "contacts"));
		it.setType("vnd.android.cursor.dir/person");
		String number=textResult.getText().toString();
		it.putExtra(android.provider.ContactsContract.Intents.Insert.SECONDARY_PHONE, number);
		startActivity(it);
	}
  运行效果:
  8.实现发短信功能 点击"信息”按钮,跳转到一个新的界面 首先,遇到的第一个问题就是如何新建一个xml文件


  接下就是设计新页面的布局 sendmessage.xml
<TableLayout//表格布局
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:gravity="center_horizontal"//水平居中
        android:layout_marginLeft="15dp"
        android:layout_marginTop="40dp"
        android:layout_marginRight="15dp">

        <TableRow//表格行
            android:id="@+id/tableRow1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            >

            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="40dp"
                android:textSize="20sp" 
                android:text="收件人:" />
                       
            <EditText
                android:id="@+id/tel"
                android:layout_width="wrap_content"
                android:layout_height="40dp"
                android:background="#ffffffff"
                android:layout_marginLeft="10dp"               
                android:textSize="20sp" 
                android:textColor="#ff333333"
                android:ems="10"/>
            
        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:layout_marginTop="40dp">
            
            <TextView
                android:id="@+id/textView3"
                android:layout_width="wrap_content"
                android:layout_height="40dp"
                android:textSize="20sp" 
                android:text="内容:" />
            
            <EditText
                android:id="@+id/content"
                android:layout_width="wrap_content"
                android:layout_height="150dp"
                android:background="#ffffffff"
                android:layout_marginLeft="10dp"
                android:textSize="20sp" 
                android:textColor="#ff333333"
                android:ems="10"/>
            
        </TableRow>
        
        <Button
        android:id="@+id/send"
        android:layout_marginTop="20dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="发送"
        android:textSize="20sp"/> 
</TableLayout>
运行效果:

 下面是实现页面跳转功能:
MainActivity.java
public class MainActivity extends Activity {	
		
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);//保存Activity的状态
		setContentView(R.layout.activity_main);
		
		//view层的控件和业务层的控件,靠id关联映射,
                //给btn赋值,即设置布局文件中的Button按钮id进行关联
		Button btn=(Button)findViewById(R.id.btn_mes);			
			
		//给btn绑定监听事件
		btn.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View view) {
				// TODO Auto-generated method stub
				Intent intent=new Intent(MainActivity.this,sendmessage.class);
				startActivity(intent);
			}
		});		
         }
	
  在这里要新建一个跟xml同名的文件
 此时点击“信息”按钮就可以成功跳转到该页面  NO!!NO!!NO!!此时还不能成功跳转,忘记一件重要的事: 每创建一个新的页面,都不要忘记注册!!!!! AndroidManifest.xml
<activity  
           android:name="sendmessage"  
           android:label="@string/app_name" >  
       </activity>  
 跟文件中原有的activity标签并列 此时才可以成功跳转。 下面的思路及代码参照学姐博客 http://429899791.iteye.com/blog/2206382 接下来绑定button的监听方法
android:onClick="send"
 最后是发送短信功能的实现 sendmessage.java
public class sendmessage  extends Activity {
	
	private EditText tel=null;
	private EditText content=null;
	
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.sendmessage);
		this.tel=(EditText)super.findViewById(R.id.tel);
		this.content=(EditText)super.findViewById(R.id.content);
	}
	
	public void send(View view){
		String telMsg=sendmessage.this.tel.getText().toString();
		String contentMsg=sendmessage.this.content.getText().toString();
		Uri uri=Uri.parse("smsto:"+telMsg);//接收人手机
		Intent it=new Intent();
		it.setAction(Intent.ACTION_SENDTO);//指定action,我要发短信
		it.putExtra("sms_body", contentMsg);//设置信息内容
		it.setType("vnd.android-dir/mms-sms") ;//设置MIME类型
		it.setData(uri);//设置数据,要去的地方
		sendmessage.this.startActivity(it);
	}
}
  这里又忘记了一件重要的事,添加权限 AndroidManifest.xml
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.SEND" />
  这样才可以发短信 运行效果:

 

  成功!!!嘻嘻嘻   9.实现发邮件功能 以下代码参照学姐博客 http://429899791.iteye.com/blog/2206569 邮件监听为:android:onClick="sendmail"  MainActivity.java
public void sendmail(View view){

		Intent emailIntent=new Intent(Intent.ACTION_SEND);
		emailIntent.setType("plain/text");//设置类型
		String address[]=new String[]{
			"[email protected]"	
		};//邮件地址

		String subject="我要交作业";//邮件主题
		String content="第一次数据库作业";//邮件内容
		emailIntent.putExtra(Intent.EXTRA_EMAIL, address);//邮件地址
		emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
		emailIntent.putExtra(Intent.EXTRA_TEXT, content);
		startActivity(emailIntent);
	}
实现效果:


成功跳转到发送邮件界面,但是手机本身的邮件好像有问题,所以不能给学姐发送邮件了。
10.手残关闭了eclipse左侧窗口怎么办


11.通讯录 11.1获取手机通讯录信息  

猜你喜欢

转载自dingfan.iteye.com/blog/2382394