public class PhoneActivity extends Activity {
public static Context mContext;
EditText smsNumber;
String sfName2 = "prefName"; // 프리퍼런스 이름 설정
String smsText = System.currentTimeMillis()+""; // smsText에 랜덤한 4자리 숫자를 넣으려고 합니다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.phonenumber);
}
public void sendSMS(View v){
String smsNum = smsNumber.getText().toString();
smsText = smsText.substring((smsText.length()-4), smsText.length()); // 랜덤한 4자리 숫자를 넣습니다.
SharedPreferences prefs = getSharedPreferences(sfName2,0); //프리퍼런스 선언
SharedPreferences.Editor editor = prefs.edit();
editor.putString(smsText, ""); //프리퍼런스에 값을 집어넣는다.
editor.commit();
}
//다른 액티비티 입니다.
public class lockscreendemo extends PhoneActivity {
.
.
.
// 제가 EditText에 적은 숫자와 4자리의 랜덤한 숫자를 비교하는 함수입니다.
public void send(View v) {
SharedPreferences prefs = getSharedPreferences(sfName2,0);
prefs.getString(smsText,""); // 앞에서 선언한 같은 프리퍼런스에서 값을 받아옵니다.
String msg = text.getText().toString();
text.setText("");//입력창 초기화
if(msg.equals(smsText)){ // 입력한 값과 프리퍼런스을 비교를 합니다.
Toast.makeText(this,"잠금이 해제됩니다",Toast.LENGTH_SHORT).show();
stopService(new Intent(this, SimpleService.class));
finish();
}
else Toast.makeText(this,"입력번호가 틀렸습니다.", Toast.LENGTH_SHORT).show();
}
안녕하세요 이번에 학교에서 안드로이드를 공부하고 있는 학생입니다.
제가 소스를 짜다가 정말 막히는것이 있어서 질문을 드립니다..
간략하게 제가 만들 어플리케이션은 한 액티비티에서 랜덤한 번호를 프리퍼런스에 저장하고
다른 액티비티에서 이 프리퍼런스 값과 제가 입력한 값이 맞으면 인증이 되는 소스를 작성하고 있습니다.
그러나 이 값 두 개가 비교가 되지 않습니다.. 제가 소스를 잘못 짰는지 아니면 프리퍼런스끼리 원래
공유가 안 되는지 궁금해서 질문을 드리게 됬습니다..