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

앱 종료 후 에도 데이타 유지를 어떻게 하나요?

0 추천

안드로이드를 공부하고 있는 학생입니다.

앱 종료 후에도 데이타를 유지하기 위한 방법으로 sharedpreference를 사용하였습니다.

인터넷보고 따라서 만들어 보았는데 앱 종류후에 데이터가 유지가 되지 않는데 어느부분이 잘못되었는지 모르겠습니다.

한수 알려주세요^^

package arabiannight.tistory.com.sharedpreferences;
 
import android.app.Activity;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.Toast;
 
public class TestSharedPreferencesActivity extends Activity {
     
    Button button1;
    Button button2;
    Button button3;
     
    long[] pattern= new long[10];
    String[] spattern=new String[10];
     
    int i;
     
    @Override
    public void onCreate(Bundle savedInstanceState) {
        i=0;
        for(int i=0;i<10;i++){
            pattern[i]=0;
        }
         
         
         
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
         
        button1 = (Button)findViewById(R.id.button1);
        button2 =(Button)findViewById(R.id.button2);
        button3=(Button)findViewById(R.id.button5);
         
         
               
        button1.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                 
            pattern[i]=1;
            SharedPreferences pref = getSharedPreferences("pref", MODE_PRIVATE);
            SharedPreferences.Editor editor = pref.edit();
            editor.putLong(spattern[i], pattern[i]);
            editor.commit();
            i++;   
                Log.d("value of button1","pattern you selected button1");
                Log.d("button1","pattern[0]"+pattern[0]);
                Log.d("button1","pattern[1]"+pattern[1]);
                Log.d("button1","pattern[2]"+pattern[2]);  
            }
        });//end of button1
         
         
                button2.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
            SharedPreferences pref = getSharedPreferences("pref", MODE_PRIVATE);
                for(int k=0;k<i;k++){
                pattern[k]=pref.getLong(spattern[k], 1);
                }
                 
                Log.d("value of button2","pattern you selected button2");
            Log.d("value of pattern","pattern[0]"+pattern[0]);
            Log.d("value of pattern","pattern[1]"+pattern[1]);
            Log.d("value of pattern","pattern[2]"+pattern[2]); 
            }
        });//end of button2
         
        button3.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                 
            SharedPreferences pref = getSharedPreferences("pref", MODE_PRIVATE);
                SharedPreferences.Editor editor = pref.edit();
                editor.clear();
                editor.commit();
                 
                for(int i=0;i<10;i++){
                    pattern[i]=0;
                    //spattern[i]="0";
                }
                 
            Log.d("value of reset","pattern you selected reset button");
            Log.d("value of reset","pattern[0]"+pattern[0]);
            Log.d("value of reset","pattern[1]"+pattern[1]);
            Log.d("value of reset","pattern[2]"+pattern[2]);   
            i=0;
            }
        });//end of button3
                 
    }//end of onCreate
     
    //값 불러오기
    private void getPreferences(){
        SharedPreferences pref = getSharedPreferences("pref", MODE_PRIVATE);
        pref.getString("hi", "");
    }
     
    // 값 저장
    private void savePreferences(){
        SharedPreferences pref = getSharedPreferences("pref", MODE_PRIVATE);
    SharedPreferences.Editor editor = pref.edit();
        //editor.putLong(pattern, pattern[i]);
    editor.putString("hi", "인사");
        editor.commit();
    }
     
    // 값 삭제
    private void removePreferences(){
        SharedPreferences pref = getSharedPreferences("pref", MODE_PRIVATE);
        SharedPreferences.Editor editor = pref.edit();
        editor.remove("hi");
        editor.commit();
    }
     
    // 값 모두 삭제
    private void removeAllPreferences(){
        SharedPreferences pref = getSharedPreferences("pref", MODE_PRIVATE);
        SharedPreferences.Editor editor = pref.edit();
        editor.clear();
        editor.commit();
    }
         
}

 

boing (140 포인트) 님이 2014년 6월 9일 질문

1개의 답변

0 추천
key값이 spattern인데 값을 설정안해서 저장이 한개도 안되었겠네요.

값이 유지되지 않는게 아니라 값을 저장하지 못한것이죠.

PS :  savePreferences() 보면 hi라는 key값이 주어진것을 참고

http://developer.android.com/reference/android/content/SharedPreferences.html#getLong(java.lang.String, long)
q1212 (26,020 포인트) 님이 2014년 6월 9일 답변
답변 너무 감사합니다. ^^
...