>>分享Android开发相关的技术 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 19747 个阅读者 刷新本主题
 * 贴子主题:  Android API 中Toast类的用法 回复文章 点赞(0)  收藏  
作者:javathinker    发表时间:2020-03-31 15:08:07     消息  查看  搜索  好友  复制  引用

今天学习到一个比较好的API类——Toast(一种为用户快速提醒信息的一种机制),结合一个拨电话的程序顺便还能温习一下Intent类,一举两得,顺便做个笔录。

这两天才了解的一个Android另外一个优点就是大家可以调用已有的程序,完成更强大的程序功能。比如说这个实验可以完成对Gphone Dialer的调用,虽然做法有些土鳖,主要是用来学习知识也不错。

今天的工作有创建一个输入框用来输入要拨打的电话号码,借助PhoneNumberUtils.isGlobalPhoneNumber方法校验一下输入的号码是否正确,如果正确启动Dialer完成拨打电话的工作,如果输入的电话号码不符合常规的号码格式,使用Toast类的MakeText方法为用户做出一个简单的提示“号码无效,请从新输入”。

不废话,直接三部曲开工。

Step1:界面框架布局设置main.xml

          <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
        <EditText
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:hint="Please input the phone number you want to dial here"
          android:id="@+id/dial_input"
          >
        </EditText>
  <Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/dial_btn"
    android:id="@+id/dial_btn"
    >
  </Button>
</LinearLayout>

string.xml

          <?xml version="1.0" encoding="utf-8"?>
<resources>
        <string name="dial_btn">Dial!</string>
        <string name="app_name">PhoneDial</string>
</resources>

Step2: Java代码

package com.penguin7.phonedial;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.telephony.PhoneNumberUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class PhoneDial extends Activity {
  private Button btnDial = null;
  private EditText et = null;

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    //文本编辑变量,用于接收视图EditText获取的号码
    et = (EditText) findViewById(R.id.dial_input);
    //启动Dialer程序Button变量
    btnDial = (Button) findViewById(R.id.dial_btn);
    btnDial.setOnClickListener(new View.OnClickListener() {

      @Override
      public void onClick(View v) {
        // TODO Auto-generated method stub
        String phoneNum = et.getText().toString();
        //isGlobalPhoneNumber方法用来检验输入的串是否是有效的号码
        if (PhoneNumberUtils.isGlobalPhoneNumber(phoneNum)) {
          //有效地电话号码,启动Dialer程序(用宏ACTION_DIAL来标示)
          //Intent传递号码信息需要从字符串转化为URI变量,
          //并以tel://起头
          Intent iDial = new Intent(Intent.ACTION_DIAL, Uri
              .parse("tel://" + phoneNum));
          //启动Dialer程序
          startActivity(iDial);
        } else {
          //无效的号码,提示用户输入错误
          Toast.makeText(PhoneDial.this,
              "not a valid number, please have a check",
              Toast.LENGTH_LONG).show();
        }
      }
    });
  }
}

Step3:看看效果

1、输入无效的号码

点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小       点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

  2、输入一个有效的号码

点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小       点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

      

----------------------------
原文链接:https://blog.51cto.com/penguin7/232088

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-04-18 16:55:47 重新编辑]
  Java面向对象编程-->类的生命周期
  JavaWeb开发-->自定义JSP标签(Ⅰ)
  JSP与Hibernate开发-->Java应用分层架构及软件模型
  Java网络编程-->用Swing组件展示HTML文档
  精通Spring-->Vue简介
  Vue3开发-->Vue指令
  Android 控件布局实现卡片效果,阴影效果
  浅析Android的通知系统
  Android实用测试方法之Monkey与MonkeyRunner
  Android线程处理简述
  Android SDCard UnMounted 流程分析
  回眸Android发展历史
  Android 使用SQLite数据库
  Android多屏幕适配
  Android资源命名规范
  Android内存优化—dumpsys meminfo详解
  Android 资源(Resources)管理
  Android 应用程序组件
  Android_实现商品详情的展示页及布局
  程序员笔记|JSBridge框架解决通信问题实现移动端跨平台开发
  MotionLayout 运动布局入门
  更多...
 IPIP: 已设置保密
树形列表:   
1页 1条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。