Chinaunix首页 | 论坛 | 博客
  • 博客访问: 550800
  • 博文数量: 179
  • 博客积分: 3845
  • 博客等级: 中校
  • 技术积分: 2003
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-16 21:25
文章分类
文章存档

2012年(74)

2011年(105)

分类: 嵌入式

2011-07-18 14:38:30

本节要讲的是,当我们在一个EditText输入电话或者网址还是Email的时候,让Android自动判断,当我们输入的是电话,我们点击输入内容将调用打电话程序,当我们输入是网址点击将打开浏览器程序.而Linkify很好的解决了这个问题.我们将分四步来完成这个Demo.

 

Step 1:新建一个Android工程,命名为LinkifyDemo.

 

Step 2:打开main.xml文件,将其内容修改为如下内容:

 


    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="请输入电话或者E-mail或者网址:"
    />
 android:id="@+id/et1"
 android:layout_width="340px"
 android:layout_height="wrap_content"
/>

 android:id="@+id/tv1"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
/>

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.xmlidtvTextView里申明这句话也就是:

 

 android:id="@+id/tv1"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"

 android:autoLink="web|phone|email"
/>

也能达到同样的效果,呵呵.今天到此结束,谢谢大家!

阅读(1156) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~