при нажатии кнопки сохранения введенный пользователем вопрос добавляется в конец массива, а количество костей увеличивается как таковое, чтобы можно было получить доступ к этому вопросу
, это работает для добавления 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);
}
}
следует увеличить массив и добавить столько вопросов, сколько введено пользователем