到目前为止,我已经能够使用此方法成功传递字符串,但是当我尝试传递整数时它似乎无法正常工作。
设置整数的类具有以下内容:
我的助手
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值 或 我没有正确传递值在“case R.id.buttonLetsGo”之外(如果我把setHoles = 10;在public int里面的getHoles(){ return setHoles; 然后它没有问题所以它肯定称为getHoles。
如果我能提供更多数据,请告诉我们!
提前致谢!
答案 0 :(得分:1)
您的问题似乎是一个范围问题:
if (items[item] == "9"){
int setHoles = 9;
}
else if (items[item] == "18"){
int setHoles = 18;
}
你在这里声明了新的“setHoles”整数,它们只存在于一行。代码中其他地方名为“setHoles”的任何其他变量都被这些新变量隐藏。 (你的编译器也应该给你一个警告。)
我希望有所帮助!
答案 1 :(得分:-1)
问题可能在于int是基元而String是对象。尝试使用Integer包装器类传递值,看看会发生什么。
像这样int q = 35;
Integer i = new Integer(q);
然后使用您的方法传递i值。希望这有帮助!