我正在尝试使用一组转换为数组的集合在回收器视图中设置多种语言。我真的不明白为什么这会导致每行显示每种语言。任何指针将不胜感激。这是我的代码:

    public void onInit(int initStatus) {
    if (initStatus == TextToSpeech.SUCCESS) {
        availableLanguages = myTTS.getAvailableLanguages();
        Locale[] arrayLocale = availableLanguages.toArray(new Locale[availableLanguages.size()]);
        String locDisplayResults = Arrays.toString(arrayLocale);

        for (int i = 1; i < arrayLocale.length; i++) {
            languagesList.add(new Language(arrayLocale[i], locDisplayResults));
            Collections.sort(languagesList, new Comparator<Language>() {
                @Override
                public int compare(Language languages1, Language languages2) {
                    return languages1.getLocaleDisplay().compareTo(languages2.getLocaleDisplay());
                }
            });
            recyclerAdapter.notifyDataSetChanged();
        }
    }
}


谢谢!

最佳答案

这段代码“ Arrays.toString(arrayLocale);”将为您提供所有元素的字符串。您正在将其分配给变量“ locDisplayResults”,并在所有语言中的所有行上对此进行设置。我认为这就是问题所在。

10-08 06:45