2015-01-09 34 views
1

我想在if條件中使用我的PlayerClick(view v)。但它給了我空例外。它必須檢索按鈕ID。如何在條件中使用onClick函數或在函數中調用它? Android

//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 IM:的onclick = 「PlayerClick」 四個按鈕XML

回答

0

我想在if條件中使用我的PlayerClick(view v)。但它 給了我空例外。

因爲你通過nullPlayerClick方法。

得到它的工作,你應該通過它由用戶按下作爲參數PlayerClick方法按鈕來查看。

+0

我試過PlayerClick(this.v);它不是有用的,雖然不能再想起它 – Fazal

+0

@SlimHarry:你使用'PlayerClick(this.v)獲得什麼問題; '? –

+0

**語法錯誤**!我不知道該怎麼傳遞它作爲參數 – Fazal

0

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

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

+0

im檢測四個按鈕。它不工作 – Fazal

+0

你現在可以看到這個視圖請指定你的問題 –

+0

即時通訊使用android:onclick =「PlayerClick」用於XML中的四個按鈕 – Fazal

0

button.setOnClickListener(this);

讓您的活動實施OnClickListener 當你得到的onClick(視圖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; 
     } 
    } 
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){ 
    ... 

我不明白你想要做什麼,所以這可能是錯誤的。只有當用戶點擊而不是btnonebtntwo時,這種方式mPlayerClick將被設置爲1(並停止您的循環)。

當然,所有的按鈕都需要調用PlayerClick()上點擊。

相關問題