我需要突出顯示並使文本中的url可動態地點擊。android分裂與空間不適合這種情況。爲什麼?
對於這一點,我使用下面的方法
private SpannableString addClickablePart(String string) {
string = string.replaceAll("\\n"," \n ");
string += " ";
SpannableString ss = new SpannableString(string);
String[] words = string.split(" ");
for (final String word : words) {
if (CommonUtilities.isValidURL(word)) {
int lastIndex = 0;
while(lastIndex != -1){
lastIndex = string.indexOf(word+" ",lastIndex);
if(lastIndex != -1){
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View textView) {
//use word here to make a decision
isRefreshingNecessary = false;
Intent mIntent = new Intent(ctx, UserWebsiteActivity.class);
mIntent.putExtra("website", word);
startActivity(mIntent);
}
};
ss.setSpan(clickableSpan, lastIndex, lastIndex + word.length(),
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
lastIndex += word.length();
}
}
}
}
return ss;
}
其大多數的情況下工作。但是,並不適用於所有情況下的例子。
在你的計劃的條款和條件 這些號碼範圍將不再適用,將 通過這種收費結構代替爲您提供的價格信息。有關更多信息,請參閱www.ee.co.uk/ukcalling獲取 。
如,對於上面的情況下,當我分裂使用
String[] words = string.split(" ");
或
String[] words = string.split("\\s+");
我See www.ee.co.uk/ukcalling for
作爲單個字整個字符串。相反,我需要這些3 - See
,www.ee.co.uk/ukcalling
和for
作爲3個不同的單詞,而不是將它們組合爲單個單詞。
我無法理解什麼是錯與空間拆分的方式。 請幫我知道。
爲什麼downvoting?我提到了我所嘗試的。請讓我知道什麼是錯的,這樣,我可以改進,而不是隻是downvoting。 – NarendraJi
爲了簡單起見,你也可以將它們分配給3個不同的textviews –
我有動態字符串,所以我不能以靜態方式處理它們。我將只有單個文本視圖,其中需要突出顯示的url部分,無論在哪裏@VivekMishra – NarendraJi