![](/img/trans.png)
[英]Android Programming: Calling function with different input using onClick
[英]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){
...
我不明白您要做什么,所以这可能是错误的。 这样,仅当用户单击不是 btnone
或btntwo
某个按钮时, mPlayerClick
才会设置为1
(并停止循环)。
当然,您的所有按钮都需要在单击时调用PlayerClick()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.