打电话应用
system/app/phone.apk 这个是打电话应用,这个Java API 不允许应用级程序员改写,系统级才可以
system/app/dialer.apk 这个是拨号器应用,可以重写一个第三方的拨号器
1.在res-layout-activity_main.xml里定义布局:
1
2 xmlns:tools="/tools"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:paddingBottom="@dimen/activity_vertical_margin"
6 android:paddingLeft="@dimen/activity_horizontal_margin"
7 android:paddingRight="@dimen/activity_horizontal_margin"
8 android:paddingTop="@dimen/activity_vertical_margin"
9 tools:context=".MainActivity"
10 android:orientation="vertical" >
11
13 android:layout_height="wrap_content" //组件必须设置宽高,否则不能通过编译
14 android:text="请输入号码:"
15 />
16
18 android:layout_height="wrap_content"
19 android:id="@+id/et"
20 />
21
23 android:layout_height="wrap_content"
24 android:text="拨打"
25 android:id="@+id/bt" //如果要在java代码中操作某个组件,则组件需要设置id,这样才能在代码中通过id拿到这个组件
26 />
27
28
2.src里写源代码
1 public class MainActivity extendsActivity {2
3 @Override4 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(newMyclick());12 }13
14 class Myclick implementsOnClickListener{15 @Override16 public voidonClick(View arg0) {17 //TODO Auto-generated method stub
18 System.out.print("按钮被点击了");19 EditText et =(EditText) findViewById(R.id.et);20 String phone =et.getText().toString();21 //在一个应用中启动另一个应用,在拨号器应用里启动打电话应用 //Android系统中基于动作机制,来调用系统的应用,你告诉系统你想做什么动作,系统就会把能做这个动作的应用给你,如果没有这个应用,会抛异常
//设置动作,通过意图告知系统
22 Intent intent = newIntent();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进行选择相应的权限,在代码中会自动生成,如下:
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("第四种");
}