我有TextView,其中的文本動態更改。該文本包含字符串如<a href='myWord'>myWord</a>
。我想要點擊這個「鏈接」後myWord出現在同一活動的EditText中。Android中的TextView中的可點擊單詞0123:
這是我的代碼:
txt.setText(Html.fromHtml("...<a href='link'>link</a>..."));
txt.setMovementMethod(LinkMovementMethod.getInstance());
這對href屬性裏面的URL工作得很好,但對於另一種格式錯誤。
我發現了很多關於StackOverflow的類似問題,但他們都是約URL鏈接。在我的應用程序中,我想在活動中創建「鏈接」。 一般情況下,我可以改變標籤有的另一如果它是依賴...
請幫幫我! 謝謝!
----- -----解決 謝謝雅各菲利普斯的想法!
可能會在未來有趣的人。 這是一個代碼:
//This is my string;
String str = "<b>Text</b> which contains one <a href='#'>link</a> and another <a href='#'>link</a>";
//TextView;
TextView txt = new TextView(this);
//Split string to parts:
String[] devFull = data[v.getId()][1].split("<a href='#'>");
//Adding first part:
txt.append(Html.fromHtml(devFull[0]));
//Creating array for parts with links (they amount always will devFull.length-1):
SpannableString[] link = new SpannableString[devFull.length-1];
//local vars:
ClickableSpan[] cs = new ClickableSpan[devFull.length-1];
String linkWord;
String[] devDevFull = new String[2];
for(int i=1; i<devFull.length; i++){
//obtaining 'clear' link
devDevFull = devFull[i].split("</a>");
link[i-1] = new SpannableString(devDevFull[0]);
linkWord = devDevFull[0];
cs[i-1] = new ClickableSpan(){
private String w = linkWord;
@Override
public void onClick(View widget) {
// here you can use w (linkWord)
}
};
link[i-1].setSpan(cs[i-1], 0, linkWord.length(), 0);
txt.append(link[i-1]);
try{
txt.append(Html.fromHtml(devDevFull[1]));
}
catch(Exception e){}
}
謝謝你的回答,但我不能使用Button。我TextView中的文本不是靜態的,我不知道下一次我的「鏈接」將出現在哪裏。文本來自DB,我需要以某種方式標記我的linkWord。我正在使用標記... – lubart 2012-04-02 01:18:45
您是否嘗試過創建自定義內容uri? – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 2012-04-02 01:27:46