Android开发学习——打电话应用

学向勤中得,萤窗万卷书。这篇文章主要讲述Android开发学习——打电话应用相关的知识,希望能为你提供帮助。
 
打电话应用
system/app/phone.apk  这个是打电话应用,这个java API 不允许应用级程序员改写,系统级才可以
system/app/dialer.apk  这个是拨号器应用,可以重写一个第三方的拨号器
 
1.在res-layout-activity_main.xml里定义布局:

1 < LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2xmlns:tools="http://schemas.android.com/tools" 3android:layout_width="match_parent" 4android:layout_height="match_parent" 5android:paddingBottom="@dimen/activity_vertical_margin" 6android:paddingLeft="@dimen/activity_horizontal_margin" 7android:paddingRight="@dimen/activity_horizontal_margin" 8android:paddingTop="@dimen/activity_vertical_margin" 9tools:context=".MainActivity" 10android:orientation="vertical" > 11< TextView 12android:layout_width="wrap_content" 13android:layout_height="wrap_content"//  组件必须设置宽高,否则不能通过编译 14android:text="请输入号码:" 15/> 16< EditText 17android:layout_width="match_parent" 18android:layout_height="wrap_content" 19android:id="@+id/et" 20/> 21< Button 22android:layout_width="match_parent" 23android:layout_height="wrap_content" 24android:text="拨打" 25android:id="@+id/bt"//  如果要在java代码中操作某个组件,则组件需要设置id,这样才能在代码中通过id拿到这个组件 26/> 27 28 < /LinearLayout>

【Android开发学习——打电话应用】2.src里写源代码
1 public class MainActivity extends Activity { 2 3@Override 4protected void onCreate(Bundle savedInstanceState) {//App创建时调用由操作系统调用此方法 5super.onCreate(savedInstanceState); 6setContentView(R.layout.activity_main); 7//给按钮设置点击监听 8//拿到按钮对象 9Button bt = (Button) findViewById(R.id.bt); 10//设置监听 11bt.setOnClickListener(new Myclick()); 12} 13 14class Myclick implements OnClickListener{ 15@Override 16public void onClick(View arg0) { 17// TODO Auto-generated method stub 18System.out.print("按钮被点击了"); 19EditText et = (EditText) findViewById(R.id.et); 20String phone =et.getText().toString(); 21//在一个应用中启动另一个应用,在拨号器应用里启动打电话应用
//Android系统中基于动作机制,来调用系统的应用,你告诉系统你想做什么动作,系统就会把能做这个动作的应用给你,如果没有这个应用,会抛异常
//设置动作,通过意图告知系统
22Intent intent =new Intent(); 23intent.setAction(Intent.ACTION_CALL); //设置动作,打电话 24intent.setData(Uri.parse("tel:"+phone)); 25startActivity(intent); //把意图告诉系统 26} 27 28} 29 30 31 }

3.添加权限,在清单文件里,底下的permission-add-UsesPermission-右侧的name进行选择相应的权限,在代码中会自动生成,如下:
  < uses-permission android:name="android.permission.CALL_PHONE"/>
 
 
RunAs--AndroidApplication,运行结果如下:
 
Android开发学习——打电话应用

文章图片
Android开发学习——打电话应用

文章图片

 
补充一点:
事件监听这个是常见的
点击事件的四种写法
第一种
* 定义一个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("第四种");
            }


 

    推荐阅读