나는 각각 int
값을 저장하는 SharedPreferences
이 여러 개 있습니다. 전에 성공적으로 다중 SharedPreferences
을 만들었지 만이 방법에 약간 다른 접근 방식을 시도하고 있습니다. 나는 가장 높은 5 개의 가치만을 지키고있다. SharedPreference
에서 각 값을 가져오고 있습니다. 그런 다음 다른 값과 비교할 현재 값인 5 값 + ArrayList
을 더하고 있습니다. 역방향 정렬 메서드를 호출하고 나서 마지막 값을 제거합니다 (추가 값이기 때문에). 그런 다음 각 색인을 SharedPreferences
의 편집기에 넣습니다.Android : SharedPreferences 문제 (복수 SharedPreferences)
prefs1 = this.getSharedPreferences("key1", Context.MODE_PRIVATE);
int value1 = prefs1.getInt("number1", 0);
prefs2 = this.getSharedPreferences("key2", Context.MODE_PRIVATE);
int value2 = prefs2.getInt("number2", 0);
prefs3 = this.getSharedPreferences("key3", Context.MODE_PRIVATE);
int value3 = prefs3.getInt("number3", 0);
prefs4 = this.getSharedPreferences("key4", Context.MODE_PRIVATE);
int value4 = prefs4.getInt("number4", 0);
prefs5 = this.getSharedPreferences("key5", Context.MODE_PRIVATE);
int value5 = prefs5.getInt("number5", 0);
ArrayList<Integer> numList = new ArrayList<Integer>();
Collections.addAll(numList, value0, value1, value2, value3, value4, value5);
Collections.sort(numList, Collections.reverseOrder());
numList.remove(numList.size()-1);
value1 = numList.get(0);
value2 = numList.get(1);
value3 = numList.get(2);
value4 = numList.get(3);
value5 = numList.get(4);
Editor editor = prefs1.edit();
editor.putInt("number1", value1);
editor.commit();
editor = prefs2.edit();
editor.putInt("number2", value2);
editor.commit();
editor = prefs3.edit();
editor.putInt("number3", value3);
editor.commit();
editor = prefs4.edit();
editor.putInt("number4", value4);
editor.commit();
editor = prefs5.edit();
editor.putInt("number5", value5);
editor.commit();
나는 데 문제가 심지어 그것을 통해 실행 후 value0
긍정적 후 내 다른 활동의 값의 각각에 대해 0을 보여주고 있습니다 : 여기에 내가 가진 것입니다.
내가이 작업을 수행하는 데 문제가 있습니까? (나는 다른 활동에서이 값을 얻을,하지만 난 그 권리가 거의 긍정적입니다 때해야 다음 그렇지 않은 경우.)
EDIT *
아마 여기에, 검색에있는 검색 중 활동에서이다 :
prefs1 = this.getSharedPreferences("key1", Context.MODE_PRIVATE);
num1 = prefs1.getInt("number1", 0); //0 is the default value
tv1 = (TextView) findViewById(R.id.val1);
tv1.setText(String.valueOf(num1));
prefs2 = this.getSharedPreferences("key2", Context.MODE_PRIVATE);
num2 = prefs2.getInt("number2", 0); //0 is the default value
tv2 = (TextView) findViewById(R.id.val2);
tv2.setText(String.valueOf(num2));
prefs3 = this.getSharedPreferences("key3", Context.MODE_PRIVATE);
num3 = prefs3.getInt("number3", 0); //0 is the default value
tv3 = (TextView) findViewById(R.id.val3);
tv3.setText(String.valueOf(num3));
prefs4 = this.getSharedPreferences("key4", Context.MODE_PRIVATE);
num4 = prefs4.getInt("number4", 0); //0 is the default value
tv4 = (TextView) findViewById(R.id.val4);
tv4.setText(String.valueOf(num4));
prefs5 = this.getSharedPreferences("key5", Context.MODE_PRIVATE);
num5 = prefs5.getInt("number5", 0); //0 is the default value
tv5 = (TextView) findViewById(R.id.val5);
tv5.setText(String.valueOf(num5));
왜 여러 공유 환경 설정이 필요합니까? 그냥 호기심을 비판하지 마라. –
@ 대니얼 스미스 (DanielSmith) 나는 단지 5 개의 값만 가지고 있으므로, 단지 5 개의 값으로 데이터베이스를 만드는 것보다 이렇게하는 것이 더 쉽습니다. –
또는 하나의 공유 환경 설정을 가지고 5 개의 값을 유지하십시오. – wtsang02