Код выполняется только один раз, и arraylist вне кости - PullRequest
0 голосов
/ 31 октября 2019

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

, это работает для добавления 1 вопроса и увеличениябросок костей 7 (из стандартных 1-6 костей), однако при добавлении второго нового вопроса бросок костей 8 поднимает вопрос в вопросах [0] или DiceRoll = 1

для основной страницы активности


import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;

import java.util.ArrayList;
import java.util.Random;

public class MainActivity extends AppCompatActivity {
    int i = 0;
    static int questionCount = 0;
    static ArrayList<String> Questions = new ArrayList<String>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
        fillarray();
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    public static int randomNumber(int boundNo) {
        Random r = new Random();
        int x = boundNo;
        int number = r.nextInt(x) + 1;
        return number;
    }

    public void roll_the_dice(View view) {
        TextView tv = this.findViewById(R.id.OutputText);
        EditText ev = this.findViewById(R.id.InputText);
        TextView tv2 = this.findViewById(R.id.WinText);
        TextView tv3 = this.findViewById(R.id.ScoreTextOut);
        tv2.setText("");
        String answer = ev.getText().toString();
        String numberString = Integer.toString(MainActivity.randomNumber(6));
        tv.setText(numberString);
        if (answer.equalsIgnoreCase(numberString)) {
            i++;
            tv2.setText("Congratulations!!!");
            tv3.setText(Integer.toString(i));
        }
    }

    public void fillarray() {
        Questions.add("If you could go anywhere in the world, where would you go?");
        Questions.add("If you were stranded on a desert island, what three things would you want to take with you?");
        Questions.add("If you could eat only one food for the rest of your life, what would that be?");
        Questions.add("If you won a million dollars, what is the first thing you would buy?");
        Questions.add("If you could spend the day with one fictional character, who would it be?");
        Questions.add("If you found a magic lantern and a genie gave you three wishes, what would you wish?");
    }

    public void DIcebreaker(View view) {
        TextView tv = this.findViewById(R.id.questionView);
        TextView tv2 = this.findViewById(R.id.questionNum);
        tv.setText("");
        tv2.setText("");
        int number = MainActivity.randomNumber(6 + questionCount);
        tv.setText(Questions.get(number -1));
        tv2.setText("Dice Roll: " + number);

    }

    public void goToActivity2(View view) {
        Intent intent = new Intent(this, AddIceBreaker.class);
        startActivity(intent);
    }
}

где в качестве второго действия с вводом вопроса


import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;

public class AddIceBreaker extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_ice_breaker);
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
    }

    public void goToActivity1(View view) {
        Intent intent = new Intent(this, MainActivity.class);
        startActivity(intent);
    }

    public void addQuestion(View view) {
        EditText ev = this.findViewById(R.id.InputRule);
        String question = ev.getText().toString();

        MainActivity.Questions.add(question);
        MainActivity.questionCount += 1;
        ReturnActivity1();
    }

    public void ReturnActivity1() {

        Intent intent = new Intent(this, MainActivity.class);
        startActivity(intent);
    }

}

следует увеличить массив и добавить столько вопросов, сколько введено пользователем

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