繁体   English   中英

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

[英]how to use onClick function within a condition or calling it in a function? Android

我想在if条件中使用我的PlayerClick(view 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;
 }

这样做的目的只是为了在XML中使用android:onclick =“ PlayerClick”在XML中单击四个右键的同时暂停一个while循环

我想在if条件中使用我的PlayerClick(view v)。 但这给了我null异常。

因为您PlayerClick null传递给PlayerClick方法。

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

findViewById(android.R.id.yourlayout)在PlayerClick()中传递此内容

喜欢

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

button.setOnClickListener(this);

让您的活动实现OnClickListener ,当您获得活动的onClick(View 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;
        }
    }
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){
    ...

我不明白您要做什么,所以这可能是错误的。 这样,仅当用户单击不是 btnonebtntwo某个按钮时, mPlayerClick才会设置为1 (并停止循环)。

当然,您的所有按钮都需要在单击时调用PlayerClick()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM