«

Android入门——电话拨号器和四种点击事件

时间:2024-3-2 19:05     作者:韩俊     分类: Android


相对于HelloWorld来说,电话拨号器也是Android的一个入门demo,从这个例子我们要理清楚做安卓项目的思路。

大体分为三步:

1.理解需求,理清思路

2.设计UI

3.代码实现

电话拨号器

1. 理解需求:

*一个文本框——用来接收电话号码

*一个按钮——用来触发事件

2. 设计UI

3. 代码实现

public class MainActivity extends Activity {

    private EditText et_number; //定义变量用来接收电话号码
    private Button btn;         //定义button
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //设置界面内容
        setContentView(R.layout.activity_main);

        //查找控件,文本输入框
        et_number= (EditText) findViewById(R.id.et_number);

        //找到按钮控件
        btn=(Button) findViewById(R.id.btn);

        //设置点击事件监听
        btn.setOnClickListener(new MyListener());
    }
    //内部类方式实现点击事件
    class MyListener implements OnClickListener{

        @Override
        public void onClick(View v) {
            //执行拨号操作
            //1.获取用户输入的号码
            String number=et_number.getText().toString();
            //2.执行拨号操作
            //创建一个拨号意图
            Intent intent=new Intent();
            //设置要拨打的号码  (URL:统一资源定位符,uri:统一资源标识符)
            intent.setData(Uri.parse("tel://"+number));
            //设置动作,拨号动作
            intent.setAction(intent.ACTION_CALL);
            //跳转到拨号界面
            startActivity(intent);
        }       
    }
}

代码写完以后,从配置文件中添加一下打电话权限CALL_PHONE就OK了。

上面的电话拨号器用了一种实现点击事件的方式,也是要介绍的第一种点击事件的方法:

四种点击事件实现方式
1.内部类方式

(见上面电话拨号demo,不过多介绍)

2.创建匿名内部类方式

/**
 * 匿名内部类方式实现点击事件
 * @author Hugh
 */
public class MainActivity extends Activity {

    private EditText et_number;
    private Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //设置界面内容
        setContentView(R.layout.activity_main);
        //查找控件,文本输入框
        et_number= (EditText) findViewById(R.id.et_number);
        //找到按钮控件
        btn=(Button) findViewById(R.id.btn);
        //设置点击事件监听
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {               
                //执行拨号操作
                    //1.获取用户输入的号码
                String number=et_number.getText().toString();
                    //2.执行拨号操作
                //意图
                Intent intent=new Intent();
                //设置要拨打的号码
                intent.setData(Uri.parse("tel://"+number));
                //设置动作,拨号 动作
                intent.setAction(intent.ACTION_CALL);
                //跳转到拨号界面
                startActivity(intent);
            }
        });
    }
}

3.实现OnClickListener接口的当前类对象

/**
 * 实现OnClickListener接口的当前类对象
 * @author Hugh
 */
public class MainActivity extends Activity implements OnClickListener {

    private EditText et_number;
    private Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 设置界面内容
        setContentView(R.layout.activity_main);
        // 查找控件,文本输入框
        et_number = (EditText) findViewById(R.id.et_number);
        // 找到按钮控件
        btn = (Button) findViewById(R.id.btn);
        // 设置点击事件监听
        btn.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        // 执行拨号操作
        // 1.获取用户输入的号码
        String number = et_number.getText().toString();
        // 2.执行拨号操作
        // 意图
        Intent intent = new Intent();
        // 设置要拨打的号码
        intent.setData(Uri.parse("tel://" + number));
        // 设置动作,拨号 动作
        intent.setAction(intent.ACTION_CALL);
        // 跳转到拨号界面
        startActivity(intent);
    }
}

4.在布局文件中给按钮添加一个单击事件的响应方法,然后在代码中实现这个方法

/短信群发器/res/layout/activity_main.xml   下定义xml中的属性android:onClick="call"
 <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/et_number"
        android:layout_below="@+id/et_number"
        android:onClick="call"
        android:text="按下拨号" />

在代码中实现这个方法

public class MainActivity extends Activity {

    private EditText et_number;
    private Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 设置界面内容
        setContentView(R.layout.activity_main);
        // 查找控件,文本输入框
        et_number = (EditText) findViewById(R.id.et_number);

    }
    public void call(View view){;
                // 执行拨号操作
                // 1.获取用户输入的号码
                String number = et_number.getText().toString();
                // 2.执行拨号操作
                // 意图
                Intent intent = new Intent();
                // 设置要拨打的号码
                intent.setData(Uri.parse("tel://" + number));
                // 设置动作,拨号 动作
                intent.setAction(intent.ACTION_CALL);
                // 跳转到拨号界面
                startActivity(intent);
    }
}

对于Android的学习,需要不断的积累,砸实基础。这篇博客算是个开始吧,我要把博客重新拾起来,加油!




标签: android

热门推荐