안드로이드 개발 질문/답변
(글 수 45,052)
완전 똑같은 패키지에 같은 레이아웃을 참조하며
같은 소스코드로 작동되는 간단한 어플을 실험중입니다..
그런데..;; 프레퍼런스라는녀석이 사용자의 설정을 영구적으로 저장시키는 녀석이잖아요.
문제는.. 1 번 녀석은 정상적으로 사용자가 입력한 값을 갖고 다음에 실행시켰을경우
똑같은 값을 내준다는거구요..
2번녀석은..;; 입력은 받으나 1번녀석과 똑같은 동작으로 나갔다가 들어오면.. 초기상태로 돌아가..
사용자의 입력값을 보여주지 않는다는거에요..;
소스코드가 같은데 왜 그런 현상이 발생할까요 -_-?
============1번 녀석
import android.app.*;
import android.content.*;
import android.os.*;
import android.widget.*;
public class Text_0126 extends Activity {
TextView textName;
TextView textStNum;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.perftest);
textName = (TextView)findViewById(R.id.name);
textStNum = (TextView)findViewById(R.id.stnum);
SharedPreferences pref = getSharedPreferences("PrefTest",0);
String Name = pref.getString("Name", "이름없음");
textName.setText(Name);
int StNum = pref.getInt("StNum",20101234);
textStNum.setText("" + StNum);
}
public void onPause() {
super.onPause();
SharedPreferences pref = getSharedPreferences("PrefTest",0);
SharedPreferences.Editor edit = pref.edit();
String Name = textName.getText().toString();
int StNum = 0;
try {
StNum = Integer.parseInt(textStNum.getText().toString());
}
catch (Exception e) {}
dit.putString("Name", Name);
edit.putInt("StNum", StNum);
edit.commit();
}
}2번 녀석===========================]
import android.app.*;
import android.content.*;
import android.os.*;
import android.widget.*;
public class Text_0126 extends Activity {
TextView textName;
TextView textNum;
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.perftest);
textName = (TextView) findViewById(R.id.name);
textNum = (TextView) findViewById(R.id.stnum);
SharedPreferences perf = getSharedPreferences("PerfTest", 0);
String Name = perf.getString("Name", "이름없음");
textName.setText(Name);
int StNum = perf.getInt("StNum", 20110126);
textNum.setText(""+StNum);
}
public void onPause() {
super.onPause();
SharedPreferences pref = getSharedPreferences("PerfText",0);
SharedPreferences.Editor edit = pref.edit();
String Name = textName.getText().toString();
int StNum = 0;
try{
StNum = Integer.parseInt(textNum.getText().toString());
}catch(Exception e){}
edit.putString("Name", Name);
edit.putInt("StNum", StNum);
edit.commit();
}
}


