自动识别文本中的链接与电话号码
在Adroid的API demo中,有一个"TEXT|Linkify",里面显示了一些网址和电话号码,单击该网址就会在浏览器中打开,单击电话号码就会自动拨号。
其实这个功能也很好实现。其源代码位于:Api demos-》src-》com.example.android.apis.text-》Link.java,内容是:
/*
* Copyright (C) 2007 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.example.android.apis.text;
import com.example.android.apis.R;
import android.app.Activity;
import android.os.Bundle;
public class Link extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.link);
}
}
看起来没有什么特别之处。
R.java的486行,属于 public static final class layout :
public static final int link=0x7f030043;
按照当前我的理解,应该这儿定义了一个名为link的控件
853行,属于 public static final class string :
public static final int link_text=0x7f0a016e;
这儿定义了该控件的值的编号。
strings.xml中的535行,定义了link_text的内容。从后面的内容看,strings.xml可以使用"@string"来调用。不知道这是系统的行为还是在程序中做了相应的设置。
<string name="link_text">This is some text. In this text are some things that are actionable. For instance, you can click on http://www.google.com and it will launch the web browser. You can click on google.com too. And, if you click on (415) 555-1212 it should dial the phone.</string>
看看link.xml的内容:
<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:autoLink="all"
<!-- 前面这句也许才是最重要的一句,自动打开链接--!>
android:text="@string/link_text"
<!--这句话的意思是调用"@string"中对于"link_text"的定义。
/>
现在开始做自己的修改,打开res->values->strings.xml
修改如下的变量的值:
<string name="hello">Hello World, HelloAndroid,welcome to my world http://ubuntuwriter.blogspot.com,and if some question ,can call 13902102699</string>
现在,显示的内容出来了,但是没有自动加上链接,于是,在res-》layout-》main.xml文件中加上一句:
android:autoLink="all"
现在再运行程序,发现链接被自动加上,而且中国的手机号也可以被正确识别,修改成功。
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment