web-dev-qa-db-ja.com

クリック可能なリンクとしてテキストビューが欲しい

<TextView
    Android:id="@+id/link"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_alignParentBottom="true"
    Android:layout_centerHorizontal="true"
    Android:text="Forget password?"
    Android:autoLink="all"
    Android:linksClickable="true"
    Android:textColor="@color/lgreen"
    Android:textStyle="italic"
     />

AndroidはTextViewのリンクを強調表示していますが、クリックには応答しません。誰かがクリック可能としてそれを行う方法を教えて、別のリンクに移動できますか?私は例を見て何度も試しました。しかし、私はできません。誰かがクリック可能なリンクとしてテキスト表示を変更する方法を明確に説明できますか。

16
Rameshbabu

すべてテスト済みで動作中100%
以下は完全な例です
解決策:Android:autoLink = "web"
サンプルXML

    <TextView
        Android:id="@+id/txtLostpassword"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_gravity="center"
        Android:autoLink="email"
        Android:gravity="center"
        Android:padding="20px"
        Android:text="@string/lostpassword"
        Android:textAppearance="?android:attr/textAppearanceSmall" />

    <TextView
        Android:id="@+id/txtLostpassword"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_gravity="center"
        Android:autoLink="web"
        Android:gravity="center"
        Android:padding="20px"
        Android:text="@string/defaultpassword"
        Android:textAppearance="?android:attr/textAppearanceSmall" />

String.xmlの文字列

<string name="lostpassword">If you lost your password please contact <a href="mailto:[email protected]?Subject=Lost%20Password" target="_top">[email protected]</a></string>

<string name="defaultpassword">User Guide <a href="http://www.cleverfinger.com.au/user-guide/">http://www.cleverfinger.com.au/user-guide/</a></string>
52
Shanewaj

TextViewにクリックリスナーを追加して、websearchを開始できます。

textView.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View view)
    {
         Intent browser= new Intent(Intent.ACTION_VIEW, Uri.parse(PASTE_YOUR_URL_HERE));  
         startActivity(browser);  
    }

});

そしてxmlは次のようになります。

<TextView  
    Android:layout_width="fill_parent"  
    Android:layout_height="wrap_content"  
    Android:text="@string/link_string"  
    Android:textSize="14dp"  
    Android:autoLink="web" /> 
10
Mathew1990

文字列ファイルにこのコードを入れてください

<string name="link">'<a href="http://www.www.com" >ForGet Password</a>'</string> 

およびXMLファイル内

Android:text="@string/link"
6
Developer

これは編集された答えです

こんにちは、layout.xmlファイルでこれを置き換えることで試すことができます

<TextView
    Android:id="@+id/textView1"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_centerHorizontal="true"
    Android:layout_centerVertical="true"
    Android:text="visit the site at www.google.com from here"
    Android:autoLink="all"
    Android:clickable="true"
    Android:linksClickable="true"
    Android:textAppearance="?android:attr/textAppearanceLarge" />

私はそれを試してみましたが、確かに動作します。 「www.google.com」をウェブリンクとして扱います

3
dinesh sharma

onCreate()メソッドに次のコードを追加します。

TextView clickableTextLink = (TextView)findViewById(R.id.your_textview_id); clickableTextLink.setMovementMethod(LinkMovementMethod.getInstance());

私はいくつかの解決策を試しました。しかし、これは私にとって完璧に機能しました。

これは最も簡単で理解可能なコードです

TextView link = (TextView) findViewById(R.id.hyper);
String linkText = "This is my website <a href='http://programondaspot.blogspot.com'>Programondaspot</a> .";
link.setText(Html.fromHtml(linkText));
link.setMovementMethod(LinkMovementMethod.getInstance());

これを確認してください post

ハッピーコーディング!

3
dondondon

以下はAndroid Nまでテストされた簡単な実装です

    String termsText = "By registering, you are agree to our";
    String termsLink = " <a href=https://www.yourdomain.com/terms-conditions.html >Terms of Service</a>";
    String privacyLink = " and our <a href=https://www.yourdomain.com/privacy-policy.html >Privacy Policy</a>";
    String allText = termsText + termsLink + privacyLink;

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        ((TextView) findViewById(R.id.text_terms_conditions)).setMovementMethod(LinkMovementMethod.getInstance());
        ((TextView) findViewById(R.id.text_terms_conditions)).setText(Html.fromHtml(allText, Html.FROM_HTML_MODE_LEGACY));
    } else {
        ((TextView) findViewById(R.id.text_terms_conditions)).setMovementMethod(LinkMovementMethod.getInstance());
        ((TextView) findViewById(R.id.text_terms_conditions)).setText(Html.fromHtml(allText));
    }
1
user2837615

定義された関数に等しいonClickタグをTextViewに追加するだけです。以下のように

<TextView
  Android:id="@+id/link"
  Android:layout_width="wrap_content"
  Android:layout_height="wrap_content"
  Android:layout_alignParentBottom="true"
  Android:layout_centerHorizontal="true"
  Android:text="Forget password?"
  Android:autoLink="all"
  Android:linksClickable="true"
  Android:textColor="@color/lgreen"
  Android:textStyle="italic"
  Android:onClick="callFunction"/>
0
Ram