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

안드로이드 SharedPreference 데이터 불러오기

0 추천

햐 ; 이제야 ON, OFF 저장이 되네요..

근데 또 문제가...

1) 버튼 5, 6이 ON으로 활성화되면 버튼7도 활성화되어서 저장되어야하는데..

     그부분이 안되네요.. 소스에는 있는 부분인데..

2) 버튼 5,6이 ON,OFF로 될 때마다 배경색과 텍스트색이 달라지는데요.

    액티비티를 키면 그냥 기본색에 기본 배경으로 나타나네요. 이것도 소스에 있는 부분인데..

 

혹시 버튼 ON,OFF 저장과 버튼 텍스트색, 배경색 따로 저장을 해주어야되나요?..

그래서 제가 String 형식으로. editor.putString("btn5", btn5.setTextColor(Color.rgb(255,255,255)));

이런식으로 저장을 하려고했는데. 색깔은 String 형식이 아니라는데..

 

1번과 2번 같은 부분은 어떻게 처리해야될까요..?..

 

 

 

헬프미 (5,430 포인트) 님이 2015년 1월 3일 질문
헬프미님이 2015년 1월 4일 수정

2개의 답변

0 추천
 
채택된 답변
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        SharedPreferences pref = getSharedPreferences("main", MODE_PRIVATE);
        SharedPreferences.Editor editor = pref.edit();
        editor.putString("btn5", "#ff0000");  // 빨간색 저장
        editor.commit();
        
        
        TextView textView = (TextView)findViewById(R.id.tv_hello);
        
        String strColor = pref.getString("btn5", "#000000");  // 두 번째 파라미터는 가져올 값이 없을 경우 설정할 기본값
        textView.setTextColor(Color.parseColor(strColor));  // TextView의 글자색을 빨간색으로 지정
    }

앱 실행 시 Preferences에 색상(빨간색)을 저장하고, 바로 불러와서 TextView의 글자색을 바꾸는 예제로 만들어 보았습니다.

#000000 는 색상값이지만 "" 안에 넣으면 문자열로 인식합니다.

참고해보세요~

가랑비 (10,530 포인트) 님이 2015년 1월 3일 답변
헬프미님이 2015년 1월 4일 채택됨
String strColor = pref.getString("btn5", "#000000");
        btn5.setTextColor(Color.parseColor(strColor));

제가 버튼안에 글자가 토스트버튼의 textOn, textOff 기능이라서... 이런식으로 넣었는데.. 오류가 나네요.
흠...;;
왜 강제종료가 되는거지......
0 추천

흰색을 저장한다고 하면

editor.putString("btn5", "#ffffff");

이렇게 저장하고

 

String strColor = pref.getString("btn5", "#ffffff");

setTextColor(Color.parseColor(strColor));

이런식으로 불러서 사용하면 되지 않을까 싶습니다.

가랑비 (10,530 포인트) 님이 2015년 1월 3일 답변
안되네요...
String strColor = pref.getString("btn5", "#ffffff");
이 명령어가 오류라는데요.. 로그캣에서는..ㅜㅜ
근데 두번째 파라미터부분에서 ""사이에 문자열을 넣는게 아닌가요..?
저렇게 색깔을 지정해줘도되나..
...