Android Studio:LinkedHashSets没有修复

时间:2016-03-12 16:55:39

标签: java android android-studio

我正在编写一个计算器应用程序。我想添加一个课程,您可以在其中查看最新结果。所以我创建了一个新的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();

1 个答案:

答案 0 :(得分:0)

试试这个:

Set<String> mySet = new LinkedHashSet<>(prefs2.getStringSet("KEY3", null));

LinkedHashSet返回的集合的内容创建新的getStringSet。如果null导致问题通过new HashSet<String>()'