2017-01-16 59 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();