Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在条件中使用onClick函数或在函数中调用它?安卓_Java_Android_Android Studio - Fatal编程技术网

Java 如何在条件中使用onClick函数或在函数中调用它?安卓

Java 如何在条件中使用onClick函数或在函数中调用它?安卓,java,android,android-studio,Java,Android,Android Studio,我想在if条件中使用我的PlayerClick(视图v)。但它给了我一个空的异常。它必须检索按钮id //Main Code where i wan to call while (gameLoop > 0){ while(PlayerClick(null) != 1){ if( WinnerCheck(currentUser.getSymbolValue()) == 1 || WinnerCheck(currentUser.getSymbolVa

我想在if条件中使用我的PlayerClick(视图v)。但它给了我一个空的异常。它必须检索按钮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循环 im使用android:onclick=“PlayerClick”作为四个XML按钮

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

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

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

findViewById(android.R.id.yourlayout)
将其传递到PlayerClick()中

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

Do

button.setOnClickListener(此)

让您的活动在ClickListener上实现

当你点击活动(视图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;
        }
    }
然后呢

while (gameLoop > 0){

    while(mPlayerClick != 1){
    ...
我不明白你想做什么,所以这可能是错误的。这样,只有当用户单击
btnone
btntwo
中的某个按钮时,
mPlayerClick
才会设置为
1
(并停止循环)


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

我尝试了PlayerClick(this.v);虽然我想不起来,但它没有用anymore@SlimHarry:使用
PlayerClick(this.v)时遇到的问题?语法错误!我不知道该把它当作什么来传递parameter@SlimHarry:在类中使用全局变量作为
私有视图,默认情况下,将第一个按钮指定给
视图
作为
视图=您的第一个按钮
,然后在按钮上单击更改
视图
,以单击方法参数作为
视图=v
。然后在PlayerClick方法中传递
视图
仍然不起作用它传递了第一个buttion私有视图功能未检测到其他用户您现在可以获取视图请指定您的问题使用android:onclick=“PlayerClick”以XML格式显示四个按钮
while (gameLoop > 0){

    while(mPlayerClick != 1){
    ...