在选中复选框的同时,我的应用程序在导航方面起作用,但是当然在使用该应用程序时,不会总是选中该复选框,而是考虑其他原因。 我的代码:
无论复选框处于什么状态,我都需要Go btn能够工作
非常感谢
--------------------------------- UPDATE ------------- ---------------------
通过注释,我设法使代码起作用,但是现在单击按钮时,它已开始再次关闭,并且单击复选框时,销钉盒不显示?
这是我的代码
checkBox = findViewById(R.id.checkBox);
checkBox.setOnClickListener(this);
GoBtn = findViewById(R.id.GoBtn);
GoBtn.setOnClickListener(this);
@Override
public void onClick(View v) {
//method called
if (v == checkBox){
if (checkBox.isChecked())
{
userPin.setVisibility(View.VISIBLE);
//when checkbox is check, userPin becomes visible
}
}
else if (v == GoBtn){
ChangeActivityStudent();
}
{
userPin.setVisibility(View.INVISIBLE);
//otherwise userPin is invisible
}
// called when check box is clicked
GoBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ChangeActivityStudent();
}
});
}
private void ChangeActivityStudent(){
Intent intent = new Intent(MainActivity.this, StudentActivity.class);
startActivity(intent);
}
}
感谢您的帮助
答案 0 :(得分:1)
您正在另一个onClickListener
内的GoBtn
上设置onClickListener()
。这意味着,除非您单击CheckBox,否则将不会设置onClickListener
上的GoBtn
。将此替换为onClick()
方法:
@Override
public void onClick(View v) {
if(v == checkBox){
if (checkBox.isChecked())
{
userPin.setVisibility(View.VISIBLE);
//when checkbox is check, userPin becomes visible
}
}else if(v == GoBtn){
ChangeActivityStudent();
}
}
然后为onCreate()
中的两个按钮设置侦听器。
checkBox.setOnClickListener(this);
GoBtn.setOnClickListener(this);
此外,我认为您不应该在onClickListener
上设置checkBox
,因为该按钮处于选中状态。并且您可能需要获取复选框状态。最好的使用方法是CheckBox.setOnCheckedChangeListener()
。让我知道您是否需要更多帮助。
答案 1 :(得分:0)
您的GoBtn.setOnClickListener
似乎位于错误的位置。
不应在onClick(View v)
方法内。
当前,仅在单击复选框后才将逻辑应用于按钮单击。
可能不是导致您的应用崩溃的原因,但是如果不进行更改将无法正常工作。
您需要做的是将GoBtn.setOnClickListener
移到您叫checkBox.setOnClickListener(this);
的位置旁边
如果要以编程方式引起点击,请致电GoBtn.performClick()
。