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

배열을 앱종류후에도 저장하려고 하는데 어떻게 해야하나요?

0 추천

배열값을 받아서 앱이종료 후에도 저장된 배열값을 유지하게 하고 싶어서 SharedPreferences 을 사용해 보았는데

앱종료 후에도 저장이 않되는데 어떻게 해야 배열을 앱종료 후에도 저장되게 할 수 있을까요?

 

package arabiannight.tistory.com.sharedpreferences;
 
import android.app.Activity;
 
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일 질문

2개의 답변

0 추천
배열이면 데이터가 좀 많을텐데 DB를 활용하시는게 어떨까요?

그리고 값을 불러오는 부분에 pref.getString(...)을 하시고는 저장을 안 하네요.. String 변수에 저장을 해야 할 것으로 보입니다.
인연 (31,880 포인트) 님이 2014년 6월 9일 답변
0 추천
spattern값은 어디있고 pattern값은 어디있나요?pattern값은 대충 있는거 같은데 key값에 해당되는 듯한 spattern값은 안보이네요...
YeonMin (17,860 포인트) 님이 2014년 6월 9일 답변
...