Циклически перебирайте два массива, проверяя, являются ли они пустыми или нет. Нажатие кнопки - PullRequest
0 голосов
/ 11 декабря 2019

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

Так что моя цель состоит в том, чтобы зациклить оба из них при повторении первогомассив и получение значений второго массива со значением первого и полностью перебрать второй массив. Однако, если второй массив пуст, я хочу увеличить индекс первого массива и запросить второй массив и продолжать до тех пор, пока первый массив и его внутренние массивы не будут полностью повторены.

Звучит легко, но у менятрудное время написать что-то, что работает.

Мой код:

var array1 : ArrayList<String> = ArrayList() // static value say 10
        var array2 : ArrayList<String> = ArrayList() // may vary
        var array1index = 0
        var array2index = 0
        array1 = getArray1Value()
        button.setOnClickListener {
            if(array1index<array1.size){
                array2 = getByArray1Value(array1[array1index])
                if(array2.isEmpty()){
                  //increase array1 index
                    if(array1index<array1.size){
                    array1index+=1
                        array2 = getByArray1Value(array1[array1index])
                          //  ....... ?
                    }else{
                        over()
                    }
                }else{

                    if(array2index<array2.size){
                        array2index+=1
                    }else{
                        over()

                    }
                }

            }else{

                over()
            }

Я думаю, что это становится все сложнее, чем это должно быть .... пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 11 декабря 2019

Если любой новичок запутается с чем-то вроде этого, вот ответ:

val array1 : ArrayList<String> = ArrayList() // static value say 10 items
    var array2 : ArrayList<String> = ArrayList() // may vary
    var array1index = 0
    var array2index = 0
    array1 = getArray1Value()
    array2 = getByArray1Value(array1[array1index])
    button.setOnClickListener {
        if(array1index<array1.size){
            mLog.i(TAG,"number of questions : ${array2.size}")
            if(array2index<array2.size){
                mLog.i(TAG,"1 activity index $array1index question index $array2index ")
                array2index+=1
            }else{
                MaterialAlertDialogBuilder(context).setTitle("Questions over")
                    .setMessage("ok thicha")
                    .setPositiveButton("ok"){
                            dialogInterface, i ->
                        dialogInterface.dismiss()
                        array2index =0
                        array1index+=1
                        if(array1index<array1.size){
                            array2 = getByArray1Value(array1[array1index])
                        }
                        button.callOnClick()
                    }.create().show()
            }

        }else{

            over()
        }

    }
0 голосов
/ 11 декабря 2019

Проверьте это

private void doStuff() {
        if(array1index<array1.size){
            array2 = getByArray1Value(array1[array1index])
            if(array2.isEmpty()){

                    array1index+=1
                    doStuff();

            }else{

                if(array2index<array2.size){
                    array2index+=1
                }else{
                    over()

                }
            }

        }else{

            over()
        }
    }

Надеюсь, это то, что вы пытаетесь достичь

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