2017-01-16 57 views
-3

我如何從片段中清除共享首選項?謝謝如何從片段中清除共享首選項?

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     sharedPreferences = getActivity().getSharedPreferences("login.conf", Context.MODE_PRIVATE); 

     editor = sharedPreferences.edit(); 
     editor.clear(); 
     editor.commit(); 
     Intent logout = new Intent(getActivity(), LoginActivity.class); 
     startActivity(logout); 
     Log.d(TAG, sharedPreferences.getString("username", "")); 
     Log.d(TAG, sharedPreferences.getString("password", "")); 
     // Inflate the layout for this fragment 
     return inflater.inflate(R.layout.fragment_fragment_logout, container, false); 
    } 

那我的片段

+0

你想怎樣到達? –

+0

我想從活動中獲得共享首選項,然後從片段中清除,這是可行的嗎? –

+0

當前代碼有什麼問題? – rafsanahmad007

回答

1

使用這樣的事情:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_fragment_logout, container, false); 
    SharedPreferences sharedPreferences = getActivity().getSharedPreferences("login.conf", Context.MODE_PRIVATE); 

    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.clear(); 
    editor.commit(); 
    Intent logout = new Intent(getActivity(), LoginActivity.class); 
    startActivity(logout); 
    Log.d(TAG, sharedPreferences.getString("username", "")); 
    Log.d(TAG, sharedPreferences.getString("password", "")); 
    // Inflate the layout for this fragment 
    return view; 
} 
+0

仍然不能,謝謝你的回答。我認爲我的程序中出現錯誤,因爲log.d不顯示。 –

+2

@DennyKurniawan如果您的log.d未顯示,則表示您的鍵值對已從sharedprefrence中刪除。 –

+1

@Denny如果你看不到你的日誌意味着你的偏好值被清除,很簡單。 – W4R10CK

5

可以直接使用偏好名稱,從任何地方清除它。

SharedPreferences preferences = getSharedPreferences("Mypref", 0); 
preferences.edit().remove("shared_pref_key").commit(); 

SharedPreferences preferences = context.getSharedPreferences("Mypref", Context.MODE_PRIVATE); 
preferences .edit().clear().commit();