java如果单击“是/否”,问题为什么没有改变?(安卓工作室)
下面的代码基于我做的一个大测验。(我已经创建了此代码,因此它更短更清晰)
在开始时,数组列表包含字符串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++;
}
}
问题不应该出在按下按钮上,因为我已经创建了一个附加的注释按钮,在该按钮中,如果按下“是”按钮,我将输出“是”,如果按下“否”按钮,则输出“否”。所以,这不应该是问题所在
我刚刚发现,出于某种原因,程序不会切换布尔值YesButtonSlicked和NoButtonSlicked。这可能是个错误,但我不知道如何修复它
共 (0) 个答案