2015-04-07 151 views
1

我創建一個聊天應用程序,其中每次我鍵入一些文字,再按發送一個超鏈接,我創建了一個新的TextView編程,並添加到現有LinearLayout這樣的 -請在TextView中

public void addTextView(LinearLayout view, String text) { 
     TextView chatTextView = new TextView(getActivity()); 
     chatTextView.setLinksClickable(true); 
     chatTextView.setMovementMethod(LinkMovementMethod.getInstance()); 
     LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
     chatTextView.setLayoutParams(lp); 
     // chatTextView.setAutoLinkMask(Linkify.ALL); 
     chatTextView.setText("me: " + Html.fromHtml(text)); 
     view.addView(chatTextView);  
    } 

answer 1this question我添加了
chatTextView.setMovementMethod(LinkMovementMethod.getInstance());到這個TextView但仍然我的鏈接不可點擊。 (測試模擬器上進行,該代碼是在一個片段)

文字,我想在這裏補充的是 -

<a href="http://www.google.com">url</a> 

試過 -

  1. 自動鏈接=網站(它會突出直接網址(即www.google.com),但不是超鏈接(即HREF)。
  2. Linkify.WEB_URL

編輯

我測試了現在,發現setMovementMethod工作正常,超鏈接如果textview是從xml佈局,但如果它是動態的,它不起作用。

+0

d你在你的TextView中嘗試'android:autoLink =「web」'? –

+0

是的,我只能用於直接鏈接,更新我的問題 – Darpan

回答

0
mTextView.setClickable(true); 
    final String text = Html.fromHtml(getActivity().getResources().getString(R.string.url)).toString(); 
    mTextView.setMovementMethod(LinkMovementMethod.getInstance()); 
    mTextView.setText(text); 

string.xml

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

這是工作非常適合我,試試吧

+0

不適用於超鏈接。 – Darpan

0

您可以使用此:

String text = "<font color=#ff0000><b><u>"+ "click here" +"</b></u></font>"; 
textview.setText(Html.fromHtml(text)); 
textview.setOnClickListener(new OnClickListener() { 

@Override 
public void onClick(View v) { 

Intent internetIntent = new Intent(Intent.ACTION_VIEW, 
             Uri.parse("http://www.google.com")); 
internetIntent.setComponent(new ComponentName("com.android.browser","com.android.browser.BrowserActivity")); 
             internetIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
             context.startActivity(internetIntent); 
            } 
           }); 
+0

您是否正確地得到了我的問題? – Darpan

1

使用此

TextView textView =(TextView)findViewById(R.id.textView); 
textView.setClickable(true); 
textView.setMovementMethod(LinkMovementMethod.getInstance()); 
String text = "<a href='http://www.google.com'> Google </a>"; 
textView.setText(Html.fromHtml(text));