2012-12-05 29 views
1
x = (TextView)findViewById(R.id.xLink); 
x.setOnTouchListener(new View.OnTouchListener() { 

     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      AlertDialog x = new AlertDialog.Builder(this.this).create(); 

      x.setMessage(Html.fromHtml(getString(R.string.text))); 

      x.setButton(AlertDialog.BUTTON_NEUTRAL, "Ok", new DialogInterface.OnClickListener() { 

       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        dialog.dismiss(); 
       } 
      }); 

      x.show(); 

      return false; 
     } 
    }); 


    <TextView 
    android:id="@+id/xLink" 
    android:text="Click" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textColor="@color/blue1" 
    android:paddingTop="30dip" 
    android:paddingRight="10dip" 
    android:layout_gravity="right" 
    android:textSize="16dip" /> 

<string name = "text">at&lt;br /&gt;&lt;a href="tel:18004455667"&gt;1-800-445-5667 lt;/a&gt;.</string> 

所以基本上當你點擊該鏈接一個對話框顯示了,在這似乎是一個鏈接,但是當你點擊,它什麼都不做數。這可能會發生什麼原因?我已經嘗試過改變瓦特/ ASCII字符,但什麼也沒做/電話號碼鏈接無法點擊的Android

+0

也試過機器人:自動鏈接=「手機」,沒有做任何事情無論是 – user1823974

回答

0

這是您的答案,它已經過測試。

public class MainActivity extends Activity { 

    private AlertDialog dialog; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     AlertDialog.Builder builder = new Builder(MainActivity.this); 

     Spanned message = Html.fromHtml(getString(R.string.text)); 
     final SpannableString str = new SpannableString(message); 
     Linkify.addLinks(str, Linkify.ALL); 

     builder.setMessage(str); 

     builder.setPositiveButton("OK", new OnClickListener() { 

      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       // TODO Auto-generated method stub 
       dialog.dismiss(); 
      } 
     }); 

     dialog = builder.create(); 

     TextView t = (TextView) findViewById(R.id.textView1); 
     t.setOnTouchListener(new OnTouchListener() { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 

       dialog.show(); 

       // This must be called after dialog.show(); 
       ((TextView)dialog.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance()); 

       return false; 

      } 
     }); 


    } 

} 
+0

真棒,我調整了它周圍,以適應在我的代碼更好,但非常感謝你!儘管如此,我確實有一個擔憂。在我添加這個之後,當我點擊電話號碼時,周圍的文本會像整個鏈接一樣閃爍。有沒有辦法解決這個問題? – user1823974

+0

@ user1823974如果滿足您的需求,您可以投票回答:)。 –

+0

試過了,信譽太低不會讓我= /。當我得到更多的分數時,我會回到它。 – user1823974

1

我相信HTML錨的問題,特別是如果你不與fromHTML()設置資源text爲:textView.setText(HTML.fromHTML(getString(R.string.text)));

的最簡單方法打個電話號碼點擊是autoLink和連勝文:

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:autoLink="phone" 
    android:text="My Number: 1-800-762-2035" 
    />