Java 安卓if语句onClick不做任何事情
我有一个Android测试应用程序(因为我是Android开发新手),其中有两个Java 安卓if语句onClick不做任何事情,java,android,onclick,Java,Android,Onclick,我有一个Android测试应用程序(因为我是Android开发新手),其中有两个onClick秘密可以改变屏幕,特别是两个不起作用的。您必须找到并单击第一个,才能访问另一个。在我添加这个系统之前,这两个秘密都起作用了,并且成功地进行了更改,没有出现任何问题 我的目标是防止人们在触发第一种方法之前触发第二种方法。当第一个方法被触发时,应用程序允许触发第二个方法 相关Java代码: private boolean colorChangable = false; public void change
onClick
秘密可以改变屏幕,特别是两个不起作用的。您必须找到并单击第一个,才能访问另一个。在我添加这个系统之前,这两个秘密都起作用了,并且成功地进行了更改,没有出现任何问题
我的目标是防止人们在触发第一种方法之前触发第二种方法。当第一个方法被触发时,应用程序允许触发第二个方法
相关Java代码:
private boolean colorChangable = false;
public void changeSecret(View v) {
Button btn = (Button) findViewById(R.id.button);
btn.setText("Your mind has been blown!");
btn.setTextColor(Color.BLUE);
colorChangable = true;
}
public void changeColor(View v) {
if (colorChangable){
TextView tw = (TextView) findViewById(R.id.textView);
tw.setTextColor(Color.RED);
tw.setText("Again, your mind has been blown.");
}
}
以及我的相关XML代码:
<TextView
android:id="@+id/textView"
android:onClick="changeColor" />
<Button
android:id="@+id/button"
android:onClick="changeSecret" />
我的代码有什么问题,有什么可以改进的吗
另外,如果代码中还有其他内容,我会删掉一些无用的部分
重要需要回答的问题,请通知我
p.p.S.这不同于关于onClick不触发的其他问题,因为在这个问题中,onClick在没有布尔确认的情况下触发
正在执行第二种方法
changeColor
,而无需执行第一种方法changeSecret
。但是请注意if(可更改颜色)
。当colorChanged
变量默认为false
时,此行避免了要执行的其余方法:
private boolean colorChangable = false;
因此,在执行第一个方法changeSecret
之前,将为false
我建议添加一个else来查看正在发生的事情,或者解释在每种情况下您想要实现的目标:
public void changeColor(View v) {
TextView tw = (TextView) findViewById(R.id.textView);
if (colorChangable){
tw.setTextColor(Color.RED);
tw.setText("Again, your mind has been blown.");
} else {
tw.setText("You cannot change color.");
}
只需在代码中添加一行即可
if (colorChangable){
TextView tw = (TextView) findViewById(R.id.textView);
tw.setTextColor(Color.RED);
tw.setText("Again, your mind has been blown.");
colorChangable=false //add this line
}
对不起,但是改变屏幕对我来说没什么意义。。。在答案中,你可以找到正在发生的事情的解释和可能的解决方案,解释更多你想要实现的目标,我会改变我的答案。。。或者简单地检查它并适应你想要的行为…:)希望帮助我解释我想在问题中做什么。再一次。。。。我真的很抱歉,但我不明白你想做什么。。。你想知道发生了什么?在我的答案中找到它。。。。你想有不同的行为?请详细解释一下。。。。不您的代码必须按照您描述的那样工作,所以问题不在这里。。。也。。。不工作不是一种行为。。。你必须把你的日志、控制台错误、调试结果或任何其他真正有用的信息放在上面,特别要说的是,2不起作用的是你的感知,它起作用了,但没有按照你的预期表现……什么是
Changable
的意思?!这只是一个无用的变量名,不必担心:)但是。。。除了使用这样一个混乱的逻辑,难道你不能在点击第一个按钮之前一直禁用第二个按钮吗?在第一个单击处理程序中的操作结束时,启用第二个按钮,仅此而已。清洁的容易的。有效。第二个“按钮”是文本视图,它必须一直在那里。抱歉,这没有什么区别,我测试了它,但感谢您的尝试:)