有没有其他方式而不是使用isPressed()方法?

时间:2013-12-27 08:49:36

标签: android

我有2个活动,A和B. 在活动A中我有radiogroup,CHECK按钮和NEXT按钮。 在我按下NEXT按钮之前,我想先选择收音机组中的第一个单选按钮,然后先检查它,以便在我按下下一个按钮之前我能够知道它是正确还是不正确。

这是我的代码:

btnNext.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        if (radio1.isChecked() || radio2.isChecked() || radio3.isChecked()) {
            if (btnCheck.isPressed()) {
                Intent i = new Intent(getApplicationContext(), SecondActivity.class);
                startActivity(i);
            }
        } else {
            return;
        }
    }

});

即使我选择了一个单选按钮并检查它,我也无法按下NEXT按钮。 请帮忙。

您的回答将不胜感激。 谢谢。

2 个答案:

答案 0 :(得分:2)

我不确定问题是什么,但您可以创建一个布尔值来检查您是否担心isPressed()无法正常工作。

boolean hasChecked = false;

btnCheck.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        // put conditions here to check if it was pressed at the right time
        hasChecked = true;
    }
});

btnNext.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        if (radio1.isChecked() || radio2.isChecked() || radio3.isChecked()) {
            if (hasChecked) {
                Intent i = new Intent(getApplicationContext(), SecondActivity.class);
                startActivity(i);
            }
        }
    }
});

答案 1 :(得分:0)

if (radio1.isChecked() || radio2.isChecked() || radio3.isChecked()) {
    //Do something here. 
}

以上是否要检查是否选中任何一个单选按钮。

if (radio1.isChecked() && radio2.isChecked() && radio3.isChecked()) {
    //Do something here.
}

以上是否要检查 all 是否选中了单选按钮。

如果我理解正确,您还需要在按NEXT之前检查一些btnChk的点击。所以在你的btnChk的onClick方法中添加一个FLAG(全局变量),如果你想记录那个特定按钮的话。

如果您希望任何单选按钮检查都为真,请使用|| if语句中的条件。然后检查是否按下了btnChk执行以下操作:

在类声明的下方声明全局FLAG:

public int FLAG = 0; 

在onCreate()上按钮上设置按钮点击事件:

Button btnChk = (Button)findViewById(R.id.YourId); 
btnChk.setOnClickListener(btn); 

private View.OnClickListener btn = new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        FLAG =1; 
    }
};

然后在“下一步”按钮中检查以下内容:

if (radio1.isChecked() || radio2.isChecked() || radio3.isChecked()) {
    if(FLAG ==1){
        //Do something here. 
    }
}

FLAG的作用:FLAG最初初始化为零,一旦按下btnChk,FLAG变为1,如果没有按下btnChk,FLAG保持为0.所以在按钮中单击下一步按钮,检查FLAG的值并相应地做你的东西。

相关问题