相对于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的学习,需要不断的积累,砸实基础。这篇博客算是个开始吧,我要把博客重新拾起来,加油!