电话拨号器案例:(学习重点Button的四种点击事件和Intent的设置 )
findViewById()按照id查找控件。例Button bt_call=(Button) findViewById(R.id.button);
给Button设置点击事件,例:bttton.setOnClickListener(OnClickListener l);
☆☆☆四种点击事件:
【1】定义内部类实现OnClickListener接口,重写onClick()方法
例:
bttton.setOnClickListener(new MyClickListener);
private class MyClickListener implements OnClickListener{
public void onClick(){
}
【2】定义匿名内部类重写onClick()方法
例:
bttton.setOnClickListener(new OnClickListener(){
public void onClick(){
}
});
【3】让MainActivity 实现 OnClickListener接口(适合布局中有多个按钮都需要设置点击事件的时候使用)
例:
public class MainActivity extends AppCompatActivity implements OnClickListener{
private EditText et_number;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//[1] 找到需要的控件 edittext 和 button
//1.1找到 edittext
et_number=(EditText) findViewById(R.id.editText);
//1.2 找到button
Button bt_call=(Button) findViewById(R.id.button);
Button bt_call2=(Button) findViewById(R.id.button2);
Button bt_call3=(Button) findViewById(R.id.button3);
Button bt_call4=(Button) findViewById(R.id.button4);
//[2] 给bt_call设置点击事件
bt_call.setOnClickListener(this);
bt_call2.setOnClickListener(this);
bt_call3.setOnClickListener(this);
bt_call4.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.button:
callphone();
break;
case R.id.button2:
callphone();
break;
case R.id.button3:
callphone();
break;
case R.id.button4:
System.out.println("被削了");
break;
}
}
public void callphone(){
//[3] 获取 EditText文本
String number = et_number.getText().toString().trim();
if ("".equals(number)){
Toast.makeText(MainActivity.this,"number不能为空",Toast.LENGTH_LONG).show();
return;
}
// [4] 进行拨打电话 设置意图
Intent intent = new Intent();// 创建意图对像
//[4.1] 为意图设置打电话的动作 Intent.ACTION_CALL
intent.setAction(Intent.ACTION_CALL);
//[4.2] 给打电话的动作设置 号码
intent.setData(Uri.parse("tel:"+number));
//[6] 开启意图
startActivity(intent);
}
}
【4】在按钮的布局中添加一个onClick属性 在Activity里定义一个方法 方法的名字和属性名相同参数为View。
例:
<Button
android:text="test"
android:onClick="click"
public void click(View v){
callphone();
}
土司的设置:
Toast.makeText(MainActivity.this,"number不能为空",Toast.LENGTH_LONG).show();
第一个参数为context(上下文 )可以写MainActivity.this 因为MainActivity最终继承context(上下文 ),第二个参数是现实的内容,第三个是现实的时长可以直接写0或1。 注意最后一定要 .show()不然不会显示。
☆☆☆设置意图(Intent):
// [4] 进行拨打电话 设置意图
Intent intent = new Intent();// 创建意图对像
//[4.1] 为意图设置打电话的动作 Intent.ACTION_CALL
intent.setAction(Intent.ACTION_CALL);
//[4.2] 给打电话的动作设置 号码
intent.setData(Uri.parse("tel:"+number));
//[6] 开启意图
startActivity(intent);