我正在编写一个计算器应用程序。我想添加一个课程,您可以在其中查看最新结果。所以我创建了一个新的Activity和LinkedHashSets。
我在三个LinkedHashSets中添加了一个String来获得此结果: 日期工作多长时间。
我现在的问题:LinkedHashSets没有正确的顺序。他们混在了一起。但我需要正确的订单!
当我在一个LinkedHashSet中创建时,我有另一个问题,字符串需要正好在左侧,中间和右侧。
我希望你能帮助我,我没有任何想法......
这是我的代码: 第一活动(主要)
SharedPreferences prefs2;
SharedPreferences.Editor prefseditor2;
String datum, gearbeitet, verdienst;
datum = datumGearbeitet;
gearbeitet = stundeGesamt + ":" + minute;
verdienst = gehalt + "";
prefs2 = this.getSharedPreferences("prefsdatei2", MODE_PRIVATE);
prefseditor2 = prefs2.edit();
Set<String> test123 = new HashSet<>();
Set<String> mySet = new HashSet<String>(prefs2.getStringSet("KEY3", test123));
Set<String> mySet2 = new HashSet<String>(prefs2.getStringSet("KEY4", test123));
Set<String> mySet3 = new HashSet<String>(prefs2.getStringSet("KEY5", test123));
mySet.add(datum);
mySet2.add(gearbeitet + " h");
mySet3.add(verdienst);
prefseditor2.putStringSet("KEY4", mySet2);
prefseditor2.putStringSet("KEY5", mySet3);
prefseditor2.putStringSet("KEY3", mySet);
prefseditor2.commit();
Intent showMain2 = new Intent(this, MainUebersichtActivity.class);
startActivity(showMain2);
第二项活动:
Set<String> mySet = new LinkedHashSet<>(prefs2.getStringSet("KEY3", null));
Set<String> mySet2 = new LinkedHashSet<>(prefs2.getStringSet("KEY4", null));
Set<String> mySet3 = new LinkedHashSet<>(prefs2.getStringSet("KEY5", null));
String a = "";
String b = "";
String c = "";
if(mySet != null && mySet2 != null && mySet3 != null) {
for (String num : mySet) {
a += num + "\n";
textv.setText(a);
}
for (String num2 : mySet2) {
b += num2 + "\n";
textv2.setText(b);
}
for (String num3 : mySet3) {
c += num3 + " €" + "\n";
textv3.setText(c);
}
}
prefseditor2.putStringSet("mySet", mySet);
prefseditor2.putStringSet("mySet2", mySet2);
prefseditor2.putStringSet("mySet3", mySet3);
prefseditor2.commit();
答案 0 :(得分:0)
试试这个:
Set<String> mySet = new LinkedHashSet<>(prefs2.getStringSet("KEY3", null));
从LinkedHashSet
返回的集合的内容创建新的getStringSet
。如果null
导致问题通过new HashSet<String>()'
。