2013-04-02 5 views
2

공유 환경 설정에서 데이터를 삭제하려고합니다. 그러나 나는 그것을 할 수 없다. 데이터가 제거되거나되지 않았는지 추적하기 위해이 코드를 사용하고 있습니다 :android의 공유 환경 설정에서 데이터 삭제

btnLogout.setOnClickListener(new View.OnClickListener() { 

    public void onClick(View arg0) { 
      SharedPreferences prefs = getSharedPreferences(share_pref_file, Context.MODE_PRIVATE); 
      SharedPreferences.Editor editor = prefs.edit(); 
      editor.remove(share_pref_file); 
      editor.clear(); 
      editor.commit(); 
      getApplicationContext().getSharedPreferences(share_pref_file, 0).edit().clear().commit(); 
       String strJson = prefs.getString("jsondata",""); 
       if(strJson != null) 
        { 
        Log.d("CLEAR", "cccccccccccccccccccccccccccc"); 
        } 
       userFunctions.logoutUser(getApplicationContext()); 
       Intent login = new Intent(getApplicationContext(),LoginActivity.class); 
       login.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
       startActivity(login); 
       // Closing dashboard screen 
       finish(); 
     } 
}); 

그러나 로그 캣 창에서 나를 보여주고있다 "cccccccccccccccccccccccccccc"값마다.

누구나 공유 환경 설정에서 데이터를 삭제/삭제하는 방법을 알려주며 '로그 아웃'버튼을 클릭하면 저장된 데이터가 모두 삭제됩니다. 미리 감사드립니다.

답변

2

빈 문자열은 여전히 ​​문자열이며 이 true를 반환합니다. 대신이 시도 :

if(!strJson.equals("")) 

이 빈 문자열이 처음에 SharedPreferences에 유효한 입력 수 없을 것입니다 가정합니다.

+0

감사합니다 ... 나를 도와줍니다. – Avijit

+0

http://stackoverflow.com/questions/15758775/getting-a-error-out-of-memory-in-android 한 번만이 링크를 확인하십시오. – Avijit

1

SharedPreferences 값을 지우려면이 버튼을 click 이벤트 내에서 사용해보십시오.

if(strJson != null) { 
    Log.d("CLEAR", "cccccccccccccccccccccccccccc"); 
} 

또는 그대로 유지하고 다음과 같이 그것을 확인 : 확인 후

String strJson = prefs.getString("jsondata", null); 

그리고 :

String strJson = prefs.getString("jsondata", ""); 

사람 :

Editor editor = getSharedPreferences("MyPref", Context.MODE_PRIVATE).edit(); 
      editor.clear(); 
      editor.commit(); 
0

어느 쪽이 변경 :

if(strJson.equals("")) { 
    Log.d("CLEAR", "cccccccccccccccccccccccccccc"); 
} 
1

try editor.clear(); 그 뒤에 editor.commit();

당신은 할 수 있습니다 : 그것은 내 솔루션,

Preference clearPref = (Preference) findPreference("MyPref"); 

    btnLogout.setOnPreferenceClickListener(new OnPreferenceClickListener() { 

     public boolean onPreferenceClick(Preference preference) { 
      SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getBaseContext());       
      SharedPreferences.Editor editor = settings.edit(); 
      editor.clear(); 
      editor.commit();     
      Toast.makeText(getBaseContext(), "All data cleared!", Toast.LENGTH_SHORT).show(); 

      return true; 
     } 

    }); 
0
settings.edit().clear().commit(); 

내가 사용하고 하나 개의 라인 코드 완벽

0

작동 : 여기

내가 사용한 적이 한 예입니다 좋아하는 데이터 대신 null을 입력하십시오. shareprefrences

getApplicationContext(); 
SharedPreferences.Editor pref = (Editor) getSharedPreferences("data", MODE_PRIVATE).edit(); 
pref.putString("admin_no", null); 
pref.commit(); 
관련 문제