2014-03-14 103 views
1

好吧,我有一個小問題,我不知道什麼是錯的,但我認爲這是與if語句的東西,只是爲了知道joker4 ia全局變量,它被設置爲3,但是當我嘗試這個功能它沒有進入該代碼中的if語句:比較int數字

public void joker4(View view) { 
    Button netocan = (Button) findViewById(R.id.button5); 
    Button netocan2 = (Button) findViewById(R.id.button4); 
    Button netocan3 = (Button) findViewById(R.id.button2); 
    if (joker4 != 0) { 
     netocan.setVisibility(View.INVISIBLE); 
     netocan2.setVisibility(View.INVISIBLE); 
     netocan3.setVisibility(View.INVISIBLE); 
     joker4 = joker4 - 1; 
    } else { 
     Toast joker1 = Toast.makeText(getApplicationContext(), 
       "Not enought JOKERS4", Toast.LENGTH_LONG); 
     joker1.show(); 
    } 
} 
+4

你試圖只是做一個簡單的打印出來的joker4權的if語句先進行驗證,在該點什麼呢? – mig

+3

你用正確的方式比較數字,有兩種可能性,joker4是0或者if語句被執行,但是你沒有意識到它。 – kai

+0

你的功能名稱也有小丑4,所以你應該改變名稱是問題 –

回答

0

下面是完整的代碼:

package com.peky.smartornot; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TabHost; 
import android.widget.Toast; 
import android.widget.TabHost.TabSpec; 
import android.widget.TextView; 

public class POV1 extends Activity { 
    Sql ulaz= new Sql(this); 
    int ispravka=0; 
    int brojac = 0, brojac1 = 0, brojac2 = 0, joker1,joker2,joker3,joker4; 
    TextView joke4text; 
    TextView joke3text; 
    TextView joke2text; 
    TextView joke1text; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_pov1); 
     sve(); 
    } 
public void sve() { 
     // TODO Auto-generated method stub 
     int joker1,joker2,joker3,joker4; 
     ulaz.open(); 
     joker1=ulaz.procitaj(); 
     joker2=ulaz.procitaj2(); 
     joker3=ulaz.procitaj3(); 
     joker4=ulaz.procitaj4(); 
     ulaz.close(); 
     TabHost joker = (TabHost) findViewById(R.id.tabhost); 
     joker.setup(); 
     TabSpec izgled = joker.newTabSpec("tag1"); 
     izgled.setContent(R.id.tab1); 
     izgled.setIndicator("Joker 1"); 
     joker.addTab(izgled); 
     izgled = joker.newTabSpec("tag2"); 
     izgled.setContent(R.id.tab2); 
     izgled.setIndicator("Joker 2"); 
     joker.addTab(izgled); 
     izgled = joker.newTabSpec("tag3"); 
     izgled.setContent(R.id.tab3); 
     izgled.setIndicator("Joker 3"); 
     joker.addTab(izgled); 
     izgled = joker.newTabSpec("tag4"); 
     izgled.setContent(R.id.tab4); 
     izgled.setIndicator("Joker 4"); 
     joker.addTab(izgled); 
     joke1text=(TextView)findViewById(R.id.joker1text); 
     joke1text.setText("You have "+ joker1 +" jokers !"); 
     joke2text=(TextView)findViewById(R.id.joker2text); 
     joke2text.setText("You have "+ joker2 +" jokers !"); 
     joke3text=(TextView)findViewById(R.id.joker3text); 
     joke3text.setText("You have "+ joker3 +" jokers !"); 
     joke4text=(TextView)findViewById(R.id.joker4text); 
     joke4text.setText("You have "+ joker4 +" jokers !"); 
    } 
    public void joker4(View view) { 
     Button netocan = (Button) findViewById(R.id.button5); 
     Button netocan2 = (Button) findViewById(R.id.button4); 
     Button netocan3 = (Button) findViewById(R.id.button2); 
     if(joker4!=0){ 
     netocan.setVisibility(View.INVISIBLE); 
     netocan2.setVisibility(View.INVISIBLE); 
     netocan3.setVisibility(View.INVISIBLE); 
     joker4=joker4-1; 
     }else{Toast joker1=Toast.makeText(getApplicationContext(), "Not enought JOKERS4", Toast.LENGTH_LONG); 
     joker1.show(); 

     } 
@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.pov1, menu); 
     return false; 
    } 
+0

在你的方法中,joker4只是在if語句之前記錄你的變量joker4的值 –

+0

你在if語句中的joker4方法中使用的變量是全局變量,並且你沒有初始化那個變量 –

+0

Thazs true,但是在sve()它被設置爲3的加載值,但是當調用joker4方法時,它會變爲-1,它應該是2 – user3402198

-4

我想你需要解決那裏的歧義。 變量Joker4和名爲Joker-4的函數, 可能是重命名該函數可能會幫助你的原因。

+0

不,在Java中,擁有與變量同名的方法是完全合法的。 –

+0

我在說的是AMBIGUITY隊友, 在這行代碼:if(joker4!= 0), 如何用不同的函數名檢查一次? –

+0

這裏有* *沒有歧義。會有其他語言,但在Java中沒有這樣的歧義。在條件'joker4!= 0'中,'joker4' *毫不含糊*指的是一個變量,而不是一個方法。 –