试图将整数传递给不同的类

问题描述:

到目前为止,我已经能够使用此方法成功传递一个字符串,但是当我尝试传递一个整数时它似乎不工作。试图将整数传递给不同的类

类,它是设置整数有以下几点:

我的助手

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

如果那里有更多的数据,我可以提供,请让我提前知道

感谢。!

您的问题似乎是一个范围界定问题:

  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

问题可能在于int是一个基元,String是一个对象。尝试使用Integer包装类传递值并查看会发生什么。

这样

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

然后通过使用方法I值。希望这可以帮助!

+0

谢谢我会试试这个。 – Rob

+0

这不会解决您的问题。基本上,你实际上并没有给“setHoles”赋值,因为你正在为新创建的“setHoles”变量赋值。 – Chris