Как связать строки из разных массивов в Java? - PullRequest
0 голосов
/ 16 апреля 2020

Я решил потратить блокировку, чтобы освежить свои языковые навыки, и поэтому написал учебное приложение, включающее раздел для изучения словарей. Поэтому я скопировал и вставил несколько слов, сделал массив с вокабами language1 и один с переводами language2, строки массива l1 будут выкладываться программой случайным образом. Он должен попросить у меня перевод, затем сравнить его с реальным и переместить вокабы в разные массивы, в зависимости от того, как часто я их правильно понимаю.

Пока все просто, но так как у меня более 400 воабов Я не могу связать каждую строку l1 с ее l2, поэтому я хочу, чтобы программа делала это над позицией в массиве. У меня есть два массива:

    <string-array name="voclist">
          <string name="v1">vocab1</string>
          ...
          <string name="v472">vocab472</string>
    </string-array>
    <string-array name="translist">
          <string name="t1">translation1</string>
          ...
          <string name="t472">translation472</string>
    </string-array>
    Random vocab = new Random();
    for (int i=0; i<voclist.length; i++);

И теперь, в другом TextView, я хочу, чтобы перевод выскакивал. Итак, что-то вроде v # n импортирует t # n так, чтобы программа это понимала. Как я могу это сделать?

1 Ответ

0 голосов
/ 16 апреля 2020

Вы должны быть в состоянии сделать следующее. Обратите внимание, что в этом примере я использую Lists . Из них легче убрать предметы.

private Random random = new Random();
private int currentIndex;

public void nextVocabQuest() {
    if (voclist.isEmpty()) {
        // Do something if no vocabs are left.
        return;
    }
    this.currentIndex = random.nextInt(voclist.size());
    String vocab = voclist.get(this.currentIndex);
    String trans = translist.get(this.currentIndex);
    // Do your question asking here
}

public void onAnswer() {
   // Check if correct
   if (!correct) return;
   /*
    * This removes the answered vocab and translation from the
    * voclist/translist and adds it to different lists for answered
    * vocabulary
    */
   finishedVoclist.add(voclist.remove(this.currentIndex));
   finishedTranslist.add(translist.remove(this.currentIndex));

   // Trigger next question
   this.nextVocabQuest();
}
...