Почему вопрос не меняется при нажатии кнопки Да / Нет? (Android Студия) - PullRequest
0 голосов
/ 27 мая 2020

Код ниже основан на огромной викторине, которую я провел. (Я создал этот код, поэтому он короче и, следовательно, понятнее)

В начале список массивов содержит строки a, b, c и d, и когда пользователь нажимает кнопку (да / нет ) к определенному вопросу, вопрос должен переключиться, и некоторые строки удаляются из списка массивов, пока не останется только одна возможная строка.

Моя проблема в том, что при запуске приложения вопрос не меняется, хотя нажимаю Да / нет.

Вот код:

public class MainActivity extends AppCompatActivity { 
static ArrayList<String> p = new ArrayList<String>(); 
static Button endbutton; 

static Button questionbutton; 
static Button yesbutton; 
static Button nobutton; 
static boolean yesbuttonisclicked=false; 
static boolean nobuttonisclicked=false; 
static boolean beginning=true; 
static int i=0; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 

endbutton = findViewById(R.id.endbutton); 


questionbutton = findViewById(R.id.questionbutton); 
yesbutton = findViewById(R.id.yesbutton); 
nobutton = findViewById(R.id.nobutton); 
if (beginning) 
{ 
p.add("a"); 
p.add("b"); 
p.add("c"); 
p.add("d"); 
beginning = false; 
} 

yesbutton.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
yesbuttonisclicked=true; 
nobuttonisclicked=false; 
endbutton.setText("yes"); 
} 
}); 
nobutton.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
nobuttonisclicked=true; 
yesbuttonisclicked=false; 
endbutton.setText("no"); 
} 
}); 

List array1 = Arrays.asList("1", "2", "3", "4"); 
Collections.shuffle(array1); 

if (array1.get(i) == "1") { 
questionbutton.setText("Question1"); 
if (yesbuttonisclicked) { 
p.remove("a"); 
p.remove("b"); 
yesbuttonisclicked=false; 
if (p.size() == 1) { 
endbutton.setText(p.get(0)); 
} 

} else if(nobuttonisclicked) { 
p.remove("c"); 
p.remove("d"); 
nobuttonisclicked=false; 
if (p.size() == 1) { 
endbutton.setText(p.get(0)); 
} 
} 
} else if (array1.get(i).equals("2")) { 
questionbutton.setText("Question2"); 
if (yesbuttonisclicked) { 
p.remove("a"); 
p.remove("c"); 
yesbuttonisclicked=false; 
if (p.size() == 1) { 
endbutton.setText(p.get(0)); 
} 
} else if(nobuttonisclicked){ 
p.remove("b"); 
p.remove("d"); 
nobuttonisclicked=false; 
if (p.size() == 1) { 
endbutton.setText(p.get(0)); 
} 
} 
} else if (array1.get(i).equals("3")) { 
questionbutton.setText("Question3"); 
if (yesbuttonisclicked) { 
p.remove("a"); 
p.remove("d"); 

yesbuttonisclicked=false; 
if (p.size() == 1) { 
endbutton.setText(p.get(0)); 
} 
} else if(nobuttonisclicked){ 
p.remove("c"); 
p.remove("b"); 
nobuttonisclicked=false; 
if (p.size() == 1) { 
endbutton.setText(p.get(0)); 
} 
} 
} else if (array1.get(i).equals("4")) { 
questionbutton.setText("Question4"); 
if (yesbuttonisclicked) { 
p.remove("d"); 
p.remove("c"); 

yesbuttonisclicked=false; 
if (p.size() == 1) { 
endbutton.setText(p.get(0)); 
} 
} else if(nobuttonisclicked){ 
p.remove("a"); 
p.remove("b"); 
nobuttonisclicked=false; 
if (p.size() == 1) { 
endbutton.setText(p.get(0)); 
} 
} 
} 
i++; 
} 
} 

Проблема не должна заключаться в нажатии кнопки, так как я создал дополнительную кнопку комментария, в которой я выводлю да, если была нажата кнопка Да и нет, если нет кнопки. Так что это не должно быть проблемой.

Я только что узнал, что программа почему-то не переключает логические значения yesbuttonisclicked и nobuttonisclicked. Возможно, это ошибка, но я не знаю, как ее исправить ...

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