SharedPreferences의 List에서 값을 편집하려고하지만 someting이 잘못되었습니다.안드로이드 목록의 SharedPreference
내 SharedPreference은 다음과 같습니다
int step = StepsData.data.getInt(String.valueOf(VALUE_KEY), 0);
editor.putInt(String.valueOf(VALUE_KEY), 0).apply();
하지만 I : 내가 편집하거나 VALUE_KEY의 모든 방식으로 작동에서 값을 얻으려면
StepsData.data = getApplicationContext().getSharedPreferences("userData", MODE_PRIVATE);
StepsData.editor = StepsData.data.edit();
:
public class StepsData {
static SharedPreferences data;
static SharedPreferences.Editor editor;
static final int VALUE_KEY = 0;
static final List<String> LIST_KEY= new Vector<String>();
}
내가 의해 SharedPref를 사용 List를 사용하는 데 문제가 있습니다. 값을 얻기위한 코드는 다음과 같습니다.
및 삭제에 대한:
List<String> clearList = new Vector<String>();
editor.putStringSet(String.valueOf(LIST_KEY), (Set<String>) clearList).apply();
하지만 NullPointerException이있다. SharedPreference의 List에서 ".clear()"와 같은 것을 사용하는 가장 좋은 방법은 무엇이며이 List 및 size에서 값을 가져 오는 방법은 무엇입니까?
코드에 몇 가지 문제가 있습니다. 첫째,'LIST_KEY'는'List'가 아닌'String' 일 필요가 있습니다. 둘째, 공유 환경 설정은'List'이 아니라'Set '을 허용합니다. 그러나 'Set'을 사용하여 List를 인스턴스화 할 수 있으며 그 반대의 경우도 가능합니다. '리스트 stringList = 새로운 ArrayList <> (yourStringSet); stringSet = new TreeSet <> (yourStringList)'을 설정하십시오. 목록에 중복 된 것이 포함되어 있다면 고유 한 것으로 축소 될 수 있습니다. –