每日日报

按钮的点击事件

①有名内部类
  1. private class MyonclickListener implements OnClickListener{
  2. @Override
  3. public void onClick(View v) {
  4. //当控件被点击的时候就会调用这个onclick方法
  5. //①获取用户的输入
  6. String number = et_number.getText().toString();
  7. //②判断用户输入是否为空
  8. if(TextUtils.isEmpty(number)){
  9. //如果为空 提示用户输入内容
  10. //Toast.makeText 向界面输出一个短暂的提示
  11. //第一个参数 上下文context Activity就是一个上下文 可以传入当前activity对象
  12. //第二个参数 要显示的提示文字
  13. //第三个参数 显示提示的时间长度 Toast.LENGTH_SHORT(显示的时长较短) Toast.LENGTH_LONG(显示时间稍长)
  14. //不要忘记要调用show()方法 显示这个Toast
  15. Toast.makeText(MainActivity.this, "电话号码不能为空", Toast.LENGTH_SHORT).show();
  16. System.out.println("用户输入是空的");
  17. }else{
  18. //如果不为空 用获取的电话号码 打电话
  19. System.out.println("打电话:"+number);
  20. //Intent 意图 就是对要进行的操作的抽象描述
  21. Intent intent = new Intent();
  22. //给意图设置要操作的动作 打电话的动作 ACTION_CALL
  23. intent.setAction(Intent.ACTION_CALL);
  24. //给意图设置要携带的数据
  25. //URL 统一资源定位符 http:// ftp:// https:// abc://
  26. //uri 统一资源标示符 可以自定义协议 url 子类父类的关系
  27. Uri data = Uri.parse("tel:"+number);
  28. intent.setData(data);
  29. //开启打电话的activity(打电话的界面)
  30. startActivity(intent);
  31. }
  32. }
  33. }
②匿名内部类
  1. public class MainActivity extends Activity {
  2. private EditText et_number;
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.activity_main);
  7. //找到要操作的控件
  8. et_number = (EditText) findViewById(R.id.editText1);
  9. Button btn_call = (Button) findViewById(R.id.button1);
  10. //给按钮添加点击事件 匿名内部类
  11. btn_call.setOnClickListener(new OnClickListener() {
  12. @Override
  13. public void onClick(View v) {
  14. //获取用户输入
  15. String number = et_number.getText().toString().trim();
  16. //判断输入是否为空
  17. if(TextUtils.isEmpty(number)){
  18. //为空提示用户
  19. Toast.makeText(MainActivity.this, "输入不能为空", Toast.LENGTH_SHORT).show();
  20. }else{
  21. //不为空打电话
  22. Intent intent = new Intent();
  23. //指定动作
  24. intent.setAction(Intent.ACTION_CALL);
  25. //设置数据
  26. intent.setData(Uri.parse("tel:"+number));
  27. startActivity(intent);
  28. }
  29. }
  30. });
  31. }
  32. }
③Activity实现接口
  1. public class MainActivity extends Activity implements OnClickListener {
  2. private EditText et_number;
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. // 把布局文件加载到界面上
  7. setContentView(R.layout.activity_main);
  8. // 找到关心的控件
  9. et_number = (EditText) findViewById(R.id.editText1);
  10. Button btn_call = (Button) findViewById(R.id.button1);
  11. Button btn2 = (Button) findViewById(R.id.button2);
  12. Button btn3 = (Button) findViewById(R.id.button3);
  13. btn_call.setOnClickListener(this);
  14. btn2.setOnClickListener(this);
  15. btn3.setOnClickListener(this);
  16. }
  17. @Override
  18. public void onClick(View v) {
  19. // View v 参数 当控件被点击的时候 被点击的对象就会作为参数传进来 可以通过控件的id进行区分
  20. int id = v.getId();
  21. switch (id) {
  22. case R.id.button1:
  23. String number = et_number.getText().toString().trim();
  24. if (TextUtils.isEmpty(number)) {
  25. Toast.makeText(this, "输入不能为空", Toast.LENGTH_SHORT).show();
  26. } else {
  27. Intent intent = new Intent();
  28. intent.setAction(Intent.ACTION_CALL);
  29. intent.setData(Uri.parse("tel:" + number));
  30. startActivity(intent);
  31. }
  32. break;
  33. case R.id.button2:
  34. Toast.makeText(this, "按钮2被点击", Toast.LENGTH_SHORT).show();
  35. break;
  36. case R.id.button3:
  37. Toast.makeText(this, "按钮3被点击", Toast.LENGTH_SHORT).show();
  38. break;
  39. }
  40. }
  41. }
posted @ 2021-01-24 17:06  durtime  阅读(68)  评论(0)    收藏  举报