首页 > 解决方案 > 如果单击是/否,为什么问题没有改变?(安卓工作室)

问题描述

下面的代码是基于我所做的一个巨大的测验。(我已经创建了这段代码,所以它更短,因此更清晰)

开始时,数组列表包含字符串 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。这可能是错误,但我不知道如何解决它......

标签: javaandroid-studio

解决方案


推荐阅读