2011-07-16 16 views
0

到目前爲止,我已經能夠使用此方法成功傳遞一個字符串,但是當我嘗試傳遞一個整數時它似乎不工作。試圖將整數傳遞給不同的類

類,它是設置整數有以下幾點:

我的助手

public int getHoles() { 
    return setHoles; 
} 

我的按鈕

case R.id.buttonSetHoles: 
     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     final CharSequence[] items = {"18", "9"}; 
     builder.setTitle("Set Holes"); 
     builder.setItems(items, new DialogInterface.OnClickListener(){ 
      public void onClick(DialogInterface dialogInterface, int item) { 
       Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show(); 
       if (items[item] == "9"){ 
        int setHoles = 9; 
       } 
       else if (items[item] == "18"){ 
        int setHoles = 18; 
       } 
       return; 
      } 
     }); 
     builder.create().show(); 
     return; 

類每當我嘗試使用值所需要的數據

 public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    String name1 = EasyPar.helper.getNames(); <--- works fine for this one 
    int setHoles = EasyPar.helper.getHoles(); 
} 

,它只是想出了什麼。如果我嘗試:

textHoleNumber.setText(String.valueOf(setHoles)); 

它只是顯示0

我能得到它的工作的唯一辦法是,如果我只設置爲前期= setHoles 18值;或者。

我試圖將「助手」移到課程的最後,但沒有奏效。我想到的是,我的按鈕沒有正確設置setHoles值我沒有正確地傳遞「案R.id.buttonLetsGo」以外的值(如果我把setHoles = 10;內公衆詮釋getHoles(){ 回報setHoles; }的,然後它工作沒有問題,所以它絕對調用該getHoles

如果那裏有更多的數據,我可以提供,請讓我提前知道

感謝。!

回答

1

您的問題似乎是一個範圍界定問題:

  if (items[item] == "9"){ 
       int setHoles = 9; 
      } 
      else if (items[item] == "18"){ 
       int setHoles = 18; 
      } 

你在這裏宣佈新的「setHoles」整數,他們只存在一條線。代碼中其他任何名爲「setHoles」的變量都被這些新變量隱藏起來。 (你的編譯器也應該給你一個關於這個的警告。)

我希望有幫助!

+0

那麼我將如何去保持他們不僅僅是一條線,並在別的地方使用它們? – Rob

+0

通過使用「int setHoles = 18;」而不是「setHoles = 18;」,你正在做的是創建一個恰好名稱爲「setHoles」的新變量,並且你將賦值爲18。如果你簡單地賦值18給變量「setHoles = 18;」,而不是用「int setHoles = 18;」聲明一個新變量,它應該可以很好地工作。 維基百科關於[範圍]的文章(https://secure.wikimedia.org/wikipedia/en/wiki/Scoping)應該解釋這個問題。 – Chris

-1

問題可能在於int是一個基元,String是一個對象。嘗試使用Integer包裝類傳遞值並查看會發生什麼。

這樣

int q = 35; 
Integer i = new Integer(q); 

然後通過使用方法I值。希望這可以幫助!

+0

謝謝我會試試這個。 – Rob

+0

這不會解決您的問題。基本上,你實際上並沒有給「setHoles」賦值,因爲你正在爲新創建的「setHoles」變量賦值。 – Chris