第三天android---------实现对应的接口

今天主要是学习了安卓中如何实现安卓提供的各种接口,或者说功能块,比如说打电话,发短信这种需要权限,涉及系统安全的操作。下面,,开始实现打电话和发短信


打电话
我实现的界面如下(运用了表格布局):



按键可以做好看一点,但是感觉太麻烦,就直接用button了,它的定义如下:

            <Button
                android:id="@+id/button1"
                android:layout_width="100dp"
                android:layout_height="70dp"
                android:onClick="digital_click"    //全部绑定同一个事件
                android:text="1" />     //存放值,

 按键对应的事件如下

	 public void digital_click(View view){
		  
		 Button btnDigital=(Button) view;
  	     String text=btnDigital.getText().toString();  
  	     a=a+text;
  	    textResult.setText(a.toString());

  }

 就是简单的读取该按键的值,并将它加到现在的字符串的后面,显示到对应的显示框中。

拨打按键对应的事件如下:

	 public void dial(View view) {
			
		 String number=textResult.getText().toString();
		Intent intent = new Intent();
		intent.setAction(intent.ACTION_CALL);
		intent.setData(Uri.parse("tel:"+number));
		startActivity(intent);//方法内部会自动为Intent添加类别:  android.intent.category.DEFAULT

		 }

 它主要是得到当前输入的号码,并调用Intent来实现打电话,可以说这一段是关键点,不过,在运行之前,还要在对应的对方加入下面的代码来获取权限

      <uses-permission  android:name="android.permission.CALL_PHONE"/>
      <uses-permission   android:name="android.permission.VIBRATE" />

 

 而页面中的删除按键,是来删除字符串的最后一个字符,比较简单,不再说明。

其中的新建联系人,也是一个按键,它绑定的事件如下:

	 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);  
           
     }  

 主要是得到当前输入的号码,跳转并传递号码给系统的新建联系人页面。

至于短信,我是这样实现的:

这个是短信页面(虽然点击发送,它不是直接发送,而是跳转到系统的发送短信页面),它同样是实现了发送短信的接口,接口的实现如下:

	 public void send(View view){  
		 
		    String telMsg=message.this.tel.getText().toString();
			String contentMsg=message.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);//设置数据,要去的地方	
			message.this.startActivity(it);
           
     } 

 在实现这个页面的时候,我想让前面的页面将用户可能输入的号码传递给该页面,最后我在网上找到了这样一个实现方法:

	 public void send_message(View view){  //在前一个页面对应的按键中绑定该事件,用来跳转和传值
		 
		 String number=textResult.getText().toString();  //得到号码
		   Intent intent=new Intent();
	    	intent.setClass(bo_hao.this, message.class);
	    	intent.putExtra(to_you, number);	/将号码和一个前面定义的变量绑定
	    	bo_hao.this.startActivity(intent);
           
     }  

 而在短信页面,实现下面的代码:

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.message);
		
		Intent intent =getIntent();   //相当于建立连接
		String to_you=intent.getStringExtra(bo_hao.to_you);  //得到值
		
		this.tel=(EditText)super.findViewById(R.id.tel);  //将值赋给对应的输入框
		tel.setText(to_you); 
		this.content=(EditText)super.findViewById(R.id.content);

	}

 
 

 上面,大概就是今天学到的东西了,主要的还算知道如何实现安卓的接口了吧,其次是对安卓的编写更加熟练了。如果以后要做安卓,总体还算比较简单,但是写代码是时候不好调试,出错了也不知道错在哪,而且还要熟悉各种组件和接口。

ps:今天写代码的时候,就一个简单的跳转,都出错,检查了好久才发现是对应页面中的一个变量名没改过来,真的坑,找错太难了

猜你喜欢

转载自2048992996.iteye.com/blog/2382386