如何在条件中使用onClick函数或在函数中调用它? Android的

时间:2015-01-09 13:45:12

标签: java android android-studio

我想在if条件中使用我的PlayerClick(视图v)。但它给了我null异常。它必须检索按钮ID。

//Main Code where i wan to call
while (gameLoop > 0){

        while(PlayerClick(null) != 1){

            if( WinnerCheck(currentUser.getSymbolValue()) == 1 || WinnerCheck(currentUser.getSymbolValue()) == 0 ){
                return currentUser;
            }

            if (gameLoop % 2 == 0)
                currentUser = me;
              else
                currentUser = opponent;
        }

        gameLoop--;
    }

功能在这里

 public int PlayerClick(View v) {

//
switch(v.getId()){

            case R.id.btnone:
                     return -1;
            case R.id.btntwo:
                     return -1;
        }
    return 1;
 }

这样做只是为了在点击右键时暂停一个while循环 即时通讯使用android:onclick =" PlayerClick"对于XML中的四个按钮

4 个答案:

答案 0 :(得分:0)

  

我想在if条件中使用我的PlayerClick(视图v)。但它   给我null异常。

因为您正在将null传递给PlayerClick方法。

要使其正常工作,您应该传递按钮视图,该视图由用户按下PlayerClick方法中的参数。

答案 1 :(得分:0)

findViewById(android.R.id.yourlayout)在PlayerClick()

中传递此内容

喜欢

PlayerClick(findViewById(android.R.id.yourlayout))

答案 2 :(得分:0)

button.setOnClickListener(this);

让您的活动实施OnClickListener 当您点击(查看v)活动时,请执行以下操作

@Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.btn_nativex:
            PlayerClick(v);
            break;
        default:
            break;
        }
    }

答案 3 :(得分:0)

public int mPlayerClick;

public void PlayerClick(View v) {

    int viewId = v.getId();    
    if (viewId == R.id.btnone) { mPlayerClick = -1; }
    if (viewId == R.id.btntwo) { mPlayerClick = -1; }
    else mPlayerClick = 1;
}

然后。

while (gameLoop > 0){

    while(mPlayerClick != 1){
    ...

我不明白你想要做什么,所以这可能是错的。只有当用户点击某个按钮mPlayerClick或{{1}时,1才会设置为btnone(并停止循环) }}

当然,所有按钮都需要在点击时调用btntwo