有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案