本节要讲的是,当我们在一个EditText输入电话或者网址还是Email的时候,让Android自动判断,当我们输入的是电话,我们点击输入内容将调用打电话程序,当我们输入是网址点击将打开浏览器程序.而Linkify很好的解决了这个问题.我们将分四步来完成这个Demo.
Step 1:新建一个Android工程,命名为LinkifyDemo.
Step 2:打开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"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="请输入电话或者E-mail或者网址:"
/>
<EditText
android:id="@+id/et1"
android:layout_width="340px"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/tv1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
Step 3:在主应用程序LinkifyDemo.java里代码修改如下:
package com.android.test;
import android.app.Activity;
import android.os.Bundle;
import android.text.util.Linkify;
import android.view.KeyEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class LinkifyDemo extends Activity {
private EditText et;
private TextView tv;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//获取资源
et = (EditText)findViewById(R.id.et1);
tv = (TextView)findViewById(R.id.tv1);
//增加事件响应
et.setOnKeyListener(new EditText.OnKeyListener(){
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
tv.setText(et.getText());
//判断输入的类型是哪种,并与系统连接
Linkify.addLinks(tv, Linkify.WEB_URLS|
Linkify.EMAIL_ADDRESSES|Linkify.PHONE_NUMBERS);
return false;
}
});
}
}
Step 4:运行之.将出现如下效果:
以输入为电话为例,也就是右上角这张图片,当我们点击这个号码时候,系统将自动调用打电话的应用程序,如下图:
扩展学习:
当然我们还有更简单的方法.就是在main.xml里id为tv的TextView里申明这句话也就是:
<TextView
android:id="@+id/tv1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:autoLink="web|phone|email"
/>
分享到:
相关推荐
Andoid自动判断输入是电话,网址或者Email的方法----Linkify的应用,本教程主讲的是,当我们在一个EditText输入电话或者网址还是Email的时候,让Android自动判断,当我们输入的是电话,我们点击输入内容将调用打电话程序,...
标题中提到的"ionic3转andoid时候需要用到这个最新版的android-support-v4-23.jar",正是针对这种问题的解决方案。 `android-support-v4`库是Google为Android应用程序提供的一个关键组件,它提供了对Android API ...
在Android开发中,菜单是应用界面不可或缺的一部分,它允许用户访问和执行各种操作。这篇教程主要面向初学者,讲解如何在Android应用中添加和实现自定义菜单。首先,我们需要了解Android菜单的基本概念。 1. **...
Android NDK提供了一种方法,让开发者可以编写原生代码(如C和C++),并将它们集成到Android应用程序中。这在需要高性能计算、利用硬件加速或重用现有C/C++库时非常有用。NDK的主要功能包括: 1. **本地库编译**:...
在Android应用开发中,自定义标题栏是提升用户体验和应用个性化的重要手段。本文将深入探讨如何在Android项目中实现自定义标题栏,包括标题栏的图标、文字、背景以及高度的自定义设置。 首先,标题栏(Toolbar)是...
为了运行应用,你需要设置一个虚拟设备(AVD,Android Virtual Device)或者连接一台真实的Android设备。在Android Studio中,通过AVD Manager可以创建和管理虚拟设备,选择合适的系统映像和硬件配置。一旦AVD准备好...
在Android开发过程中,模拟器是开发者的重要工具,它允许我们在没有物理设备的情况下测试应用程序。本文将深入探讨Android模拟器的使用,帮助初学者快速入门。 首先,了解Android模拟器的基本概念。Android模拟器是...
"andoid ppt demo实例"是一个关于如何在Android应用中集成并展示PPT的实践案例。这个实例可以帮助开发者了解如何利用现有的库或者自定义解决方案来实现这一功能。 首先,Android系统本身并不支持直接播放PPT文件,...
在Android平台上,应用程序的能耗管理是一项关键任务,因为电池寿命直接影响到用户体验。为了提供最佳的用户体验,开发者需要了解并实施一些策略来有效控制Android应用的耗电量。以下是一些核心的知识点,帮助开发者...
Multiple annotations found at this line: - error: Error: No resource found that matches the given name (at 'icon' with value '@drawable/icon'). - Should explicitly set android:allowBackup to true...
在Android平台上,有效地控制应用程序的耗电量是提升用户体验的关键因素之一。用户对于手机的耗电量有着明确的期望:在使用应用如观看视频、玩游戏时,他们可以接受较高的耗电,但在待机状态下,他们期待手机能保持...
Android NDK(Native Development Kit)是Google为Android平台提供的一款用于开发原生代码的应用程序工具集,它允许开发者使用C和C++等低级语言编写部分应用程序,从而提高性能、优化资源利用,尤其是在处理图形密集...
在Android平台上,开发一款能够计算跑步速度和步数的应用是一项常见的任务,这涉及到传感器数据的获取、运动数据的处理以及用户界面的展示等多个方面。在这个名为"bagilevi-android-pedometer-b27cac2"的压缩包中,...
在Android平台上,位置定位是移动应用开发中的一个重要组成部分,它允许开发者获取用户的地理位置信息,从而实现各种基于位置的服务,如导航、社交应用、生活服务等。"andoid位置定位DEMO"是一个示例项目,旨在帮助...
在安卓平台上,条码扫描和二维码生成是常见的功能,广泛应用于各种应用中,如商品扫码、支付确认、信息分享等。本压缩包“安卓条码扫描二维码相关-andoid二维码生成自带中心logo.rar”包含了实现这一功能的相关代码...
更现代的方法是使用`Coroutines`,它在Kotlin中提供了更简洁的并发控制。 3. **文件下载与存储**:获取到.zip文件后,应用需要将其保存在设备上。Android提供了`DownloadManager`服务或者直接使用`File`类来管理...
Retrofit是一个流行的网络库,可以方便地将接口方法转换为网络请求,并支持JSON数据的自动序列化和反序列化。 3. **天气API**: - Google提供了一个天气API,但也有第三方API如OpenWeatherMap、Weatherbit等。这些...
- Intent的作用:用于启动Activity、Service或者BroadcastReceiver,传递数据。 - Intent的类型:显式Intent和隐式Intent,理解两者的区别和使用场景。 3. **多线程与线程池** - Handler/Looper/Messenger:理解...
5. **数据存储**:为了保存用户的登录状态、偏好设置等信息,应用可能使用SharedPreferences、SQLite数据库或者更高级的本地存储方案,如Room库。 6. **事件监听与回调**:Android应用中的大部分交互都是通过事件...
android面试指南.包括java基础知识,设计模式,android知识.