会挽雕弓如满月,西北望,射天狼。这篇文章主要讲述如何在Android中再次设置布尔值true?相关的知识,希望能为你提供帮助。
boolean isChecked
第一次被宣布为true
,而不是我在OnClickListener
中设置为false
。我需要的是在下一个boolean isChecked
再次将true
设置为OnClickListener
。我知道这不是在同一范围但我怎么能这样做?这是我的代码:
answer[j].setOnClickListener(new View.OnClickListener() {
private boolean isChecked = true;
@Override
public void onClick(View v) {
RadioButton checkedRadioButton = ((RadioButton) v);
if (isChecked) {
if (checkedRadioButton.isChecked()) {
score++;
isChecked = false;
}
}
}
});
resetButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isChecked = true;
score = 0;
}
});
谢谢!
答案您只需要在onclick侦听器范围之外声明您的布尔值。然后它将变得更加轻松,您可以随心所欲地做任何事情。在onCreate之前声明它,以便它在此类中具有全局访问权限。
例
public class MainActivity extends AppCompatActivity {
Button btn, btn2;
boolean isValid;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.button);
btn2 = (Button) findViewById(R.id.button2);
isValid = true;
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isValid = true;
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isValid = false;
}
});
}
}
编辑V2
我看了一下你再次发布的代码,我可以告诉你的逻辑是说isValid是真的(你有if(isValid))然后进入你的逻辑。好吧,开始你实际上声明值是假的。所以在你的代码中说是isValid = true; 发生的事情是你的逻辑是说布尔值不是真的所以不要执行代码。
伊迪丝太阳
好吧,我再次看了你的所有代码,我可以看到发生了什么。由于变量是全局的,因此一旦我们将其声明为false,它就不再执行第二次,因为它永远不会再次被重新赋值为true。说实话,我没有看到这个变量的目的。哈哈,除了去那里之外什么也没做。但是,如果你想要变量,你应该删除行isChecked = false; 正如我所说,老实说,在你的代码中没有任何目的。
另一答案【如何在Android中再次设置布尔值true()】让它简单-------
btn = (Button) findViewById(R.id.button);
btn2 = (Button) findViewById(R.id.button2);
isValid = true;
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isValid = true;
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isValid = false;
}
推荐阅读
- Android(清除活动堆栈)
- SQLite with Foreign Key + Models Android Studio CRUD
- BlackBerry - html链接到App World中的应用程序
- 技术同时编写iPhone,黑莓和Android手机( [关闭])
- 不幸的是,Apps已停止在某些Android设备上
- BlackBerry - 如何为Application设置图标()
- Blackberry ListField Text Wrapping - 只有两行
- 每次从后台恢复应用程序时都会打开启动屏幕,如WhatsApp指纹屏幕
- 如何使用swift获取appdelegate中的当前位置