2011-12-09 90 views
3

我有按鈕和文本,我retrive從即 我宣佈樣如何從android中的超鏈接文本中刪除下劃線?

<string name="Google"><a href=""http://www.google.com\">Google</a></string> 

我刪除其文本的顏色從藍色到白色,但在strings.xml中RES /值的按鈕文本string.xml我如何刪除其下劃線? 在我的.java文件我只使用setMovementMethod(LinkMovementMethod.getInstance());作出鏈接clickabale ...我沒有使用Linkify,webview或類似form.Html ... 一切工作正常。我只是想刪除下面的「谷歌」文本的下劃線... 有沒有辦法在XML中做到這一點?我也使用android:autoLink="all"。但是當我使用它時,文本和按鈕顏色會發生變化,我不希望這樣。

請幫忙。

+0

這裏有一個很棒的答案在這裏:http://stackoverflow.com/questions/4096851/remove-underline-from-links-in-textview-android – Warpzit

+0

是啊之前發佈問題我謝謝你的回答,但我在這裏已經提到過,我沒有使用Linkify或其他任何東西,除了 setMovementMethod(LinkMovementMethod.getInstance()); 但無論如何。 – shankey

+0

感謝您的編輯[email protected] – shankey

回答

1

嘗試了很多後,我終於找到了解決方案。 我刪除了string.xml 的鏈接,並在java文件中添加了這段代碼。

Button btnGoogle = (Button GoogleAlert.findViewById(
       R.id.btnGoogle); 
      btnGoogle.setMovementMethod(
       LinkMovementMethod.getInstance()); 
      btnGoogle.setOnClickListener(new OnClickListener() 
      { 
       @Override 
       public void onClick(View v) 
       {   
        Uri uri = Uri.parse(
         "http://www.google.com"); 
        Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
        startActivity(intent); 
        buyAlert.dismiss(); 
       } 
      }); 

它的工作完美。

+0

完美無缺。謝謝。 – Sahan

1

您可以將style=\"text-decoration:none\"添加到您的<a>標記中。

有關如何格式化字符串資源的更多信息,請查看String Resources Documentation

+0

謝謝!但是我做到了,但它不起作用。下劃線仍然保持在文本之下。 – shankey

+2

請發佈完整的''標籤,並附上我提到的修改。 –

+0

這是我的字符串標記 Google shankey

9
TextView text=(TextView) findViewById(R.id.text); 

    String value = "<html> click to go <font color=#757b86><b><a href=\"http://www.google.com\">google</a></b></font> </html>"; 
Spannable spannedText = (Spannable) 
       Html.fromHtml(value); 
text.setMovementMethod(LinkMovementMethod.getInstance()); 

Spannable processedText = removeUnderlines(spannedText); 
     text.setText(processedText); 

這裏是你的removeUnderlines()

public static Spannable removeUnderlines(Spannable p_Text) { 
       URLSpan[] spans = p_Text.getSpans(0, p_Text.length(), URLSpan.class); 
       for (URLSpan span : spans) { 
        int start = p_Text.getSpanStart(span); 
        int end = p_Text.getSpanEnd(span); 
        p_Text.removeSpan(span); 
        span = new URLSpanNoUnderline(span.getURL()); 
        p_Text.setSpan(span, start, end, 0); 
       } 
       return p_Text; 
      } 

也使用此行來創建類URLSpanNoUnderline.java

import co.questapp.quest.R; 
import android.text.TextPaint; 
import android.text.style.URLSpan; 

public class URLSpanNoUnderline extends URLSpan { 
    public URLSpanNoUnderline(String p_Url) { 
     super(p_Url); 
    } 

    @Override 
    public void updateDrawState(TextPaint p_DrawState) { 
     super.updateDrawState(p_DrawState); 
     p_DrawState.setUnderlineText(false); 
     p_DrawState.setColor(R.color.info_text_color); 
    } 
} 

你也可以改變文本的顏色p_DrawState.setColor(R.color.info_text_color);

+0

我這樣得到灰色鏈接 – CQM

+0

p_DrawState.setColor(R.color.info_text_color);使用這個你可以改變超鏈接文本的顏色...... String value =「 click to go google」;「這裏改變顏色爲其他顏色 – Sishin

-3
TextView text=(TextView) findViewById(R.id.text); 
final String s = text.getText(); 
text.setText(""); 
text.setText(s); 

這就是所有人))

+0

對不起,不適用於我:TextView creditsTextView =(TextView)dialog.getCustomView()。findViewById(R.id.text_credits); creditsTextView.setMovementMethod(LinkMovementMethod.getInstance()); final CharSequence s = creditsTextView.getText(); creditsTextView.setText(「」); creditsTextView.setText(s); –