안드로이드 개발 질문/답변
(글 수 45,052)
EditText안에 입력하는 텍스트에 링크를 걸 수 있는지 궁급합니다~
예를들어 abc@hotmail.com 와 같이 밑줄과 링크가 함께 보이도록이요.
터치하면 다른 activity로 전환되거나 dialog뜨거나 하도록 하고싶은데
일단 edt text안에서 링크를 어떻게 걸수있을지 방법을 모르겠어서요..
도움답변 부탁드립니다..
예를들어 abc@hotmail.com 와 같이 밑줄과 링크가 함께 보이도록이요.
터치하면 다른 activity로 전환되거나 dialog뜨거나 하도록 하고싶은데
일단 edt text안에서 링크를 어떻게 걸수있을지 방법을 모르겠어서요..
도움답변 부탁드립니다..




아래 ApiDemos의 1.5 SDK의 소스입니다.
Link.java
/* * Copyright (C) 2007 The Android Open Source Project * * 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.graphics.Typeface; import android.os.Bundle; import android.text.Html; import android.text.SpannableString; import android.text.Spanned; import android.text.method.LinkMovementMethod; import android.text.style.StyleSpan; import android.text.style.URLSpan; import android.widget.TextView; public class Link extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.link); // text1 shows the android:autoLink property, which // automatically linkifies things like URLs and phone numbers // found in the text. No java code is needed to make this // work. // text2 has links specified by putting <a> tags in the string // resource. By default these links will appear but not // respond to user input. To make them active, you need to // call setMovementMethod() on the TextView object. TextView t2 = (TextView) findViewById(R.id.text2); t2.setMovementMethod(LinkMovementMethod.getInstance()); // text3 shows creating text with links from HTML in the Java // code, rather than from a string resource. Note that for a // fixed string, using a (localizable) resource as shown above // is usually a better way to go; this example is intended to // illustrate how you might display text that came from a // dynamic source (eg, the network). TextView t3 = (TextView) findViewById(R.id.text3); t3.setText( Html.fromHtml( "<b>text3:</b> Text with a " + "<a href=\"http://www.google.com\">link</a> " + "created in the Java source code using HTML.")); t3.setMovementMethod(LinkMovementMethod.getInstance()); // text4 illustrates constructing a styled string containing a // link without using HTML at all. Again, for a fixed string // you should probably be using a string resource, not a // hardcoded value. SpannableString ss = new SpannableString( "text4: Click here to dial the phone."); ss.setSpan(new StyleSpan(Typeface.BOLD), 0, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); ss.setSpan(new URLSpan("tel:4155551212"), 13, 17, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); TextView t4 = (TextView) findViewById(R.id.text4); t4.setText(ss); t4.setMovementMethod(LinkMovementMethod.getInstance()); } }Link.xml<?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2007 The Android Open Source Project 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. --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content"> <!-- Four TextView widgets, each one displaying text containing links. --> <!-- text1 automatically linkifies things like URLs and phone numbers. --> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/text1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:autoLink="all" android:text="@string/link_text_auto" /> <!-- text2 uses a string resource containing explicit <a> tags to specify links. --> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/text2" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/link_text_manual" /> <!-- text3 builds the text in the Java code using HTML. --> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/text3" android:layout_width="fill_parent" android:layout_height="fill_parent" /> <!-- text4 builds the text in the Java code without using HTML. --> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/text4" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout>