试图将整数传递给不同的类
问题描述:
到目前为止,我已经能够使用此方法成功传递一个字符串,但是当我尝试传递一个整数时它似乎不工作。试图将整数传递给不同的类
类,它是设置整数有以下几点:
我的助手
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”的变量都被这些新变量隐藏起来。 (你的编译器也应该给你一个关于这个的警告。)
我希望有帮助!
那么我将如何去保持他们不仅仅是一条线,并在别的地方使用它们? – Rob
通过使用“int setHoles = 18;”而不是“setHoles = 18;”,你正在做的是创建一个恰好名称为“setHoles”的新变量,并且你将赋值为18。如果你简单地赋值18给变量“setHoles = 18;”,而不是用“int setHoles = 18;”声明一个新变量,它应该可以很好地工作。 *关于[范围]的文章(https://secure.wikimedia.org/wikipedia/en/wiki/Scoping)应该解释这个问题。 – Chris