当前位置: 首页 > 知识库问答 >
问题:

java.lang.索引: 1,大小: 0在java.util.ArrayList.get(ArrayList.java:437)

汪阳辉
2023-03-14

这是我的代码,我收到以下错误消息:
“java.lang.IndexOutOfBoundsException:索引:1,大小:0”请提供帮助。我的应用程序应该使用AllWords列表,我不知道为什么当我使用SharedReferences添加了很多单词时,会看到大小为0。

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_library);

        sp = getSharedPreferences("Words", Context.MODE_PRIVATE);
        word1 = findViewById(R.id.word1);

        AllWords = GetAllWords();

        word1.setText(AllWords.get(1).toString());
    }

    public List<String> GetAllWords (){
        List<String> AllWords = Collections.synchronizedList(new ArrayList<String>());
       for(int i=0 ; i<sp.getInt("size",0) ; i++){
            AllWords.add(sp.getString("i",""));
        }
        return AllWords;
    }

共有1个答案

赵永新
2023-03-14

SharedReferences使用String键,而不是int。当您使用字符串literal“i”读取或写入SharedReferences时,您并没有按照自己的想法为项目编制索引。您正在存储一个值,并且可能多次将其过度写入。

 类似资料: