Can I get the key from SharedPreferences if a know the associated value?

后端 未结 2 650
南方客
南方客 2021-01-20 21:20

Is it possible to get the \"key\" value from a SharedPreferences file if I know the \"value\" value it is paired with?

Let\'s say I\'ve gone into the SharedPreferenc

2条回答
  •  花落未央
    2021-01-20 22:18

    You can use the SharedPreferences.getAll method.

    String findKey(SharedPreferences sharedPreferences, String value) {
        for (Map.Entry entry: sharedPreferences.getAll().entrySet()) {
            if (value.equals(entry.getValue())) {
                return entry.getKey();
            }
        }
        return null; // not found
    }
    

    You should note that while keys are guaranteed to be unique in SharedPreferences, there's no guarantee that the values will be unique. As such, this function will only return the key for the first matching value.

提交回复
热议问题