打电话应用
system/app/phone.apk 这个是打电话应用,这个Java API 不允许应用级程序员改写,系统级才可以
system/app/dialer.apk 这个是拨号器应用,可以重写一个第三方的拨号器
1.在res-layout-activity_main.xml里定义布局:
111 16 21 27 28
2.src里写源代码
1 public class MainActivity extends Activity { 2 3 @Override 4 protected void onCreate(Bundle savedInstanceState) { //App创建时调用由操作系统调用此方法 5 super.onCreate(savedInstanceState); 6 setContentView(R.layout.activity_main); 7 //给按钮设置点击监听 8 //拿到按钮对象 9 Button bt = (Button) findViewById(R.id.bt); 10 //设置监听11 bt.setOnClickListener(new Myclick());12 }13 14 class Myclick implements OnClickListener{15 @Override16 public void onClick(View arg0) {17 // TODO Auto-generated method stub18 System.out.print("按钮被点击了");19 EditText et = (EditText) findViewById(R.id.et);20 String phone = et.getText().toString();21 //在一个应用中启动另一个应用,在拨号器应用里启动打电话应用 //Android系统中基于动作机制,来调用系统的应用,你告诉系统你想做什么动作,系统就会把能做这个动作的应用给你,如果没有这个应用,会抛异常 //设置动作,通过意图告知系统 22 Intent intent = new Intent();23 intent.setAction(Intent.ACTION_CALL);//设置动作,打电话24 intent.setData(Uri.parse("tel:"+phone));25 startActivity(intent);//把意图告诉系统26 }27 28 }29 30 31 }
3.添加权限,在清单文件里,底下的permission-add-UsesPermission-右侧的name进行选择相应的权限,在代码中会自动生成,如下:
<uses-permission android:name="android.permission.CALL_PHONE"/>
RunAs--AndroidApplication,运行结果如下:
补充一点:
事件监听这个是常见的
点击事件的四种写法
第一种* 定义一个MyListener实现onClickListener接口 Button bt1 = (Button) findViewById(R.id.bt1); bt1.setOnClickListener(new MyListener());第二种* 定义一个匿名内部类实现onClickListener接口 Button bt2 = (Button) findViewById(R.id.bt2); bt2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { System.out.println("第二种"); } });第三种* 让当前activity实现onClickListener接口 Button bt3 = (Button) findViewById(R.id.bt3); bt3.setOnClickListener(this);第四种* 给Button节点设置onClick属性, android:onClick="click" * 然后在activity中定义跟该属性值同名的方法 public void click(View v){ System.out.println("第四种"); }