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++;
}
}
问题不应该在于按下按钮,因为我创建了一个额外的注释按钮,如果按下是按钮,则输出是,如果没有按钮,则输出否。所以,这应该不是问题。
我刚刚发现,由于某种原因,该程序不会切换布尔值 yesbuttonisclicked 和 nobuttonisclicked。这可能是错误,但我不知道如何解决它......
解决方案
推荐阅读
- ios - 类型“NSNotification.Name”没有成员“UITextField”
- java - Makefile 不工作:make:Nothing to be done for `all'
- bash - 我如何在 bash 中捕获 gitlab-runner 的输出
- python - 根据列值删除行 - 但不仅仅是一个列值 - 值列表
- dart - Flutter 按状态对 JSON 进行排序
- javascript - 窗口卸载时提交表单
- ios - Nativescript Angular
- javascript - TypeError:request.headers.entries 不是函数
- wordpress - 什么是 WordPress 的 Wix 中继器等价物?
- android - android通知图标显示奇怪