Как динамически вводить вложенный вывод For L oop в ArrayList - Android - PullRequest
0 голосов
/ 01 августа 2020

Я новичок в Android, и я написал код, который находит простые числа между двумя числами (x и y).

Мне удалось найти простое число, но мое приложение имеет прикрепленную к нему кнопку ("b2") &: onclick ("изменить порядок"), поэтому мне нужна помощь.

Я пытаюсь установить вывод вложенного for-l oop в ArrayList, но не может быть установлен динамически для каждой итерации. Я в основном хочу изменить порядок элементов arraylist с помощью "Collections.reverse ()".

x = Integer.parseInt(et1.getText().toString());
y = Integer.parseInt(et2.getText().toString());

for (i = x; i <= y; i++) {

               if (i == 1 || i == 0)
                   continue;
               flag = 1;

               for (j = 2; j <= i / 2; ++j) {
                   if (i % j == 0) {
                       flag = 0;
                       break;
                   }
               }


               if (flag == 1) {
                   myList = new ArrayList<Integer>();
                 
                   for (flag=i; i>0;){
                       myList.add(i);   //this i suppose will do the trick

                   }

                   fResult = new String(myList.toString());
                   t1.setText(fResult);
                   t1.setTextColor(getResources().getColor(R.color.myColor));
                   t2.setTextColor(getResources().getColor(R.color.myColor));
                   Toast.makeText(this, R.string.df, Toast.LENGTH_LONG).show();


               }
           }
       };

public void CloseKeyboard() {
       View view = getCurrentFocus();

       InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
       imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
   }

   public void changeOrder(View view) {
       b2 = (Button) findViewById(R.id.myButton2);
       Collections.reverse(myList);
       t1.setText(myList.toString());
       b2.setText(R.string.chnge_text);

   }

1 Ответ

0 голосов
/ 03 августа 2020

Используйте ArrayList num = new ArrayList <> ();

Он будет работать и динамически добавлять выходные данные вашего for l oop. Для получения более подробной информации вы можете обратиться к https://www.w3schools.com/java/java_arraylist.asp

При дальнейшей проверке вы должны определить myList в начале l oop. Что происходит, так это то, что каждый раз, когда условие flag == 1 удовлетворяет, вы создаете новый список ArrayList, поэтому предыдущие данные теряются, и вам остается только последнее значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...