2012-04-24 17 views
0

データベースから引き出された内容に応じてEditTextボックスを動的に作成します。Android EditText +一部の単語を色で設定する

e。

  final EditText textV = new EditText(this); 
      textV.setText(monEntry); 

は、部分文字列を使用せずに別の色にのEditTextのテキストと別のビットのいくつかを設定することがとにかくありますか()? 誰かが助けることができればありがとう!

答えて

4

はい、SpannableStringを使用している場合、テキストのさまざまな場所で色を変えることができます。例:

SpannableString text = new SpannableString("Lorem ipsum dolor sit amet"); 
final EditText textV = new EditText(this); 
// make "Lorem" (characters 0 to 5) red 
textV.setSpan(new ForegroundColorSpan(Color.RED), 0, 5, 0); 
textV.setText(text, BufferType.SPANNABLE); 

またはあなたが以下のようにHTMLコードを使用することができます::

textV.setText(Html.fromHtml(html text having 1 in red 2 in green and so on)); 

より完全な例hereがあります。

のJavadoc SpannableString

+0

助けてくれてありがとうのために! – matt

2
public class MainActivity extends Activity implements TextWatcher { 

    EditText txt1,txt2; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     txt1=(EditText) findViewById(R.id.editText1); 
     txt2=(EditText) findViewById(R.id.editText2); 
     txt2.setText(getResources().getString(R.string.str)); 
     txt1.addTextChangedListener(this); 

    } 

    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, 
      int after) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) { 
     // TODO Auto-generated method stub 
     String string = getResources().getString(R.string.str); 
     // String string1=string.toLowerCase(); 
     try{ 
       String withHighLightedText = string.replaceAll(s.toString(), "<font color='yellow'>"+s.toString()+"</font>"); 
       txt2.setText(Html.fromHtml(withHighLightedText), TextView.BufferType.SPANNABLE); 
       }catch(Exception ex){ 

       } 

    } 

    @Override 
    public void afterTextChanged(Editable s) { 
     // TODO Auto-generated method stub 

    } 
} 
+1

Thanx @ user3585230それは私のために働く! –

関連する問題