마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

메모장 어플입니다 현재부터 쓰는 글씨의 색깔을바꾸려면 어떻게해야하나요?

0 추천

에디트 텍스트로 배경화면을 지정했고요

package example.memo;

import android.app.*;
import android.content.*;
import android.graphics.*;
import android.os.Bundle;
import android.view.*;
import android.widget.*;



public class TxtActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.txt);



}
public void mOnClick(View v){
switch(v.getId()){
case R.id.action:
ActionBar ab = getActionBar();
if(ab.isShowing()){

ab.hide();
((Button)v).setText("액션바 나타내기");


}else{

ab.show();
((Button)v).setText("액션바 숨기기");


}
break;
case R.id.btnmenu:
finish();
break;

}
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.txtmemo, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
String text = null;
EditText mEdit;
switch(item.getItemId()){
case R.id.black:
 mEdit = (EditText)findViewById(R.id.editmemo);
 mEdit.setTextColor(Color.BLACK);
 break;
case R.id.red:
 mEdit = (EditText)findViewById(R.id.editmemo);
 mEdit.setTextColor(Color.RED);
 break;
case R.id.blue:
 mEdit = (EditText)findViewById(R.id.editmemo);
 mEdit.setTextColor(Color.BLUE);
 break;


}
return super.onOptionsItemSelected(item);
}
}
 
 
대충 이런식입니다. 
지금 색깔을 바꾸려고하는데 에디트의 전체색이 다 바뀌어 버리더라고요.
색깔을 바꾼 그시점부터 쓰는 글을 색깔을 바꿀려면 어떻게 구현하면 될까요?
 
그리고 그 정보를 db에 넣으려면 어떻게 구현해야할까요? 
 
신참개발자 (380 포인트) 님이 2014년 12월 2일 질문

1개의 답변

0 추천
SpannableStringBuilder 클래스를 이용하면 하나의 textView에 여러 효과를 줄 수 있습니다.
 
 
DB에 넣는건 각 정보들을 어떻게 관리할것인지 생각해서 구현하시면됩니다!
q1212 (26,020 포인트) 님이 2014년 12월 2일 답변
텍스트뷰가 아닌 에디트뷰에서 바로 바로 바꾸면서 작업을 하고 싶습니다...
옵션메뉴에서 색깔을 바꿀때마다 그자리부터 수정된 글씨색으로 사용되고 그건 어떻게 해야할까요?
그건 불가능한건가요?
EditText가 TextView를 상속 받은 것이기 때문에 둘다 사용 가능합니다.
원하시는 기능 모두 가능합니다.
그러면 쓰레드로 옵션이클릭되면 스패너가 실행되게 하는식으로 코드를 사용하면 되는건가요?
...