java - 我无法从另一个类获取 arrayList

标签 java android arraylist

我不知道为什么我无法从另一个类获取ArrayList

第一个类中的方法获取ArrayList并将文本设置为四个TextView

private void GameStart() {
    ActivityStartGame startGame = new ActivityStartGame();
    startGame.GameStart();

    ArrayList<String> getWordList = startGame.getPutWords();
    String[] putWords = new String[getWordList.size()];
    for (int i = 0; i < getWordList.size(); i++) {
        putWords[i] = getWordList.get(i);
    }
    txtSelect1.setText(putWords[1]);
    txtSelect2.setText(putWords[2]);
    txtSelect3.setText(putWords[3]);
    txtSelect4.setText(putWords[4]);
}

第二个类在四个随机位置创建四个随机单词

private String[] wordsEnglish = new String[] { "A", "B", "C",
        "D", "E", "F", "G", "H", "I" };

private String[] wordsFarsi = new String[] { "4", "3", "2", "1",
        "9", "8", "7", "6", "5" };

private ArrayList<Integer> chosenWordNumbers = new ArrayList<Integer>();
private ArrayList<String> putWords = new ArrayList<String>();

public void GameStart() {
    Thread thread = new Thread(new Runnable() {

        @Override
        public void run() {
            doStart();
        }

        private void doStart() {

            if (!part1) {

                randomNumber = (int) (Math.random() * wordsEnglish.length);
                currentwordFarsi = wordsFarsi[randomNumber];
                currentwordEnglish = wordsEnglish[randomNumber];
                answer1 = wordsFarsi[randomNumber];
                putSelect();
                putWords.add(randomNumberSelect, answer1);

                part1 = true;

            }
            if (!part2) {

                randomNumber = (int) (Math.random() * wordsFarsi.length);
                currentwordFarsi = wordsFarsi[randomNumber];
                if (answer1 == currentwordFarsi) {
                    GameStart();
                }
                answer2 = wordsFarsi[randomNumber];
                putSelect();
                putWords.add(randomNumberSelect, answer2);
                part2 = true;

            }
            if (!part3) {

                randomNumber = (int) (Math.random() * wordsFarsi.length);
                currentwordFarsi = wordsFarsi[randomNumber];
                if (answer1 == currentwordFarsi) {
                    GameStart();
                } else if (answer2 == currentwordFarsi) {
                    GameStart();
                }
                answer3 = wordsFarsi[randomNumber];
                putSelect();
                putWords.add(randomNumberSelect, answer3);
                part3 = true;

            }
            if (!part4) {

                randomNumber = (int) (Math.random() * wordsFarsi.length);
                currentwordFarsi = wordsFarsi[randomNumber];
                if (answer1 == currentwordFarsi) {
                    GameStart();
                } else if (answer2 == currentwordFarsi) {
                    GameStart();
                } else if (answer3 == currentwordFarsi) {
                    GameStart();
                }
                answer4 = wordsFarsi[randomNumber];
                putSelect();
                putWords.add(randomNumberSelect, answer4);
                part4 = true;

            }
          thread.start();
        }

        private void putSelect() {
            do {

                randomNumberSelect = (int) ((Math.random() * 4) + 1);
                if (!chosenWordNumbers.contains(randomNumberSelect)) {
                    chosenWordNumbers.add(randomNumberSelect,
                            randomNumberSelect);

                    break;
                }

            } while (true);
        }

    });
}

public ArrayList<String> getPutWords() {

    return putWords;

}

这是我写的代码。我遇到错误,我不知道我的问题是在获取 ArrayList 还是在第二个类中创建 ArrayList

编辑:我检查了...我的问题出在第二类的 putSelect 方法中!

最佳答案

在我看来,您想要分配文本的第一个类的 putWords 索引有错误。您尝试访问索引 1 到 4..但是大小为 4 的数组的索引为 0 到 3。

关于java - 我无法从另一个类获取 arrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33070821/

相关文章:

java - 无法在运行时更改 dropwizard 中的日志级别

java - 从数据库重新加载列表或将其存储为 Parcelable?

java - 类数组列表

java - [JAVA]数组迭代器的arraylist

java - 使用 ObjectInputStream 等待来自套接字的数据

java - ViewBinder - null 对象引用/在 SwipeRefresh 上也不起作用?

android - 当并发连接数超过 Firebase 中的限制时额外连接会发生什么

java - 如何将 HTML/Javascript 代码转换为可用于 Eclipse 中的 Android 应用程序

android - 使用 Intents 和 setResult() 在 Activity 之间传递数据时遇到问题

java - 如何防止 ImageView 以编程方式调整大小以适合屏幕?