2012-07-06 82 views
2

現在我正在寫簡單的筆記應用程序。我需要在EditText中顯示格式化的單獨選定文本。如何在EditText中顯示格式化文本?

我嘗試,

EditText et = (EditText)findViewById(R.id.edittext); 
String string; 
int startSelection = et.getSelectionStart(); 
int endSelection = et.getSelectionEnd(); 

string = et.getText().toString(); 
string.substring(startSelection, endSelection); 



Spanned s = Html.fromHtml("<font color=\"red\">" + string + "</font>"); 

et.setText(s); 

該溶液僅顯示分離選定的文本。但我需要在其他文本中顯示格式化文本。我不知道。

UPD:格式化發生,當用戶點擊按鈕。

+0

你想要這樣嗎? 「簡單文本**格式化文本**簡單文本再次」 – MKJParekh 2012-07-06 13:28:40

回答

1

嘗試使用此

String string = et.getText().toString(); 
    String selectedString = string.substring(startSelection, endSelection); 

    Spanned s = Html.fromHtml(string.replace(selectedString, "<font color=\"red\">" + selectedString + "</font>")); 
+0

@ user1506772讓我知道如果這不起作用 – 2012-07-06 13:41:25

+0

謝謝!它很好的解決方案,但是我需要在下一次格式化後顯示格式化文本。格式化發生,當用戶點擊按鈕。這意味着:我需要保存格式化文本,即使在另一個格式化文本之後。 – Ahmed 2012-07-06 18:10:36

0

如果你談論格式的文本,你總是可以做這樣的

EditText et = new EditText(this); 
et.setText(Html.fromHtml("Simple Text <B>Formatted Text</B> Simple Text Again")); 

,如果你想linkify文本的特定部分,然後做像這樣使用Blog

EditText mTextSample = new EditText(this); 
    String text = "click to see stackoverflow.com here"; 
    mTextSample.setText(text);   
    Pattern pattern = Pattern.compile("stackoverflow.com"); 
    Linkify.addLinks(mTextSample, pattern, "http://"); 
2

試試這個

EditText text = new EditText(this); 
text.setText(Html.fromHtml(html)); 
text.setMovementMethod(LinkMovementMethod.getInstance()); 
相關問題