-1

如何使此源代码中的 AND 语句起作用?没有错误,但是运行时,buttonNext 仍然不可见。我希望它可以被看到。

View.OnClickListener myOnlyhandler = new View.OnClickListener() {

              public void onClick(View v) {
                  if( buttonD.getId() == ((Button)v).getId() &&
                              buttonO.getId() == ((Button)v).getId() &&
                              buttonG.getId() == ((Button)v).getId() ){
                      buttonNext.setVisibility(View.VISIBLE);
                  }
    }

是错了还是遗漏了什么?感谢你的回答..

4

2 回答 2

0

试试这个伙伴:

public void onClick(View v) {
              if( buttonD.getVisibility() == View.VISIBLE &&
                          buttonO.getVisibility() == View.VISIBLE &&
                          buttonG.getVisibility() == View.VISIBLE ){
                  buttonNext.setVisibility(View.VISIBLE);
              }

希望能帮助到你。

于 2013-10-16T02:44:28.857 回答
0

你检查错了。该onClick方法不存储以前的数据,即您无法知道在当前视图之前按下了什么。您可以使用一些标志来手动存储它。

private boolean clickedBtnD;
private boolean clickedBtnO;
private boolean clickedBtnG;

public void onClick(View v) {
    final int id = v.getId();
    switch(id) {
        case R.id.btnD:
            clickedBtnD = true;
            // Set your button to visible too?
            break;
        case R.id.btnO:
            clickedBtnO = true;
            // Set your button to visible too?
            break;
        case R.id.btnG:
            clickedBtnG = true;
            // Set your button to visible too?
            break;
        case R.id.btbNext:
            if(clickedBtnD && clickedBtnO && clickedBtnG) {
                buttonNext.setVisiblity(View.VISIBLE);
            }
            break;
    }
}

您需要做的就是将这个 OnClickListener 用于所有 4 个按钮。

于 2013-10-16T03:57:00.983 回答