마스터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일 답변
답변 너무 감사합니다. ^^
...