Android 给出短值';s在if块中,并将它们交给不同活动中的另一个方法
我有一段代码,在单击时为short gridSize提供一个值(我希望它能做到这一点,如果您看到任何错误,请纠正我)。但是现在它还没有做任何事情 给出短值的代码:Android 给出短值';s在if块中,并将它们交给不同活动中的另一个方法,android,Android,我有一段代码,在单击时为short gridSize提供一个值(我希望它能做到这一点,如果您看到任何错误,请纠正我)。但是现在它还没有做任何事情 给出短值的代码: public static short getGridSize(PuzzleActivity puzzleActivity, ImageButton view) { if ( mIbtn3x3 == view) { String puzzle3 = "3"; Short
public static short getGridSize(PuzzleActivity puzzleActivity, ImageButton view) {
if ( mIbtn3x3 == view) {
String puzzle3 = "3";
Short gridSize = Short.parseShort(puzzle3);
} else if (mIbtn4x4 == view ) {
String puzzle4 = "4";
Short gridSize = Short.parseShort(puzzle4);
} else if (mIbtn5x5 == view ) {
String puzzle5 = "5";
Short gridSize = Short.parseShort(puzzle5);
}
return Short.parseShort(PuzzleActivity.gridSize);
}
应接收值的代码(拼图活动):
在if块代码中:gridSize获得以下错误:“gridSize无法解析或不是字段”
在PuzzleActivity代码中:.getGridSize获取以下错误:“类型SizeSelection中的方法getGridSize(PuzzleActivity,ImageButton)不适用于参数(PuzzleActivity)”
显然我不是一个专业的编码员。请帮我修一下这个。提前感谢~olijf这里有几件事要做。我要介绍的第一件事是编译器错误 听起来您的代码调用了
getGridSize
错误,它希望您在活动中传入ImageButton
假设您的ImageButton
被称为ImageButton
,那么代码看起来是这样的(将其绑定到视图
,以便您可以打开它):
在getGridSize
中,您没有重置gridSize变量,而是在每个if/then块中创建一个新变量。您需要这样做:
Short gridSize = -1;
if(mIbtn3x3 == view) {
String puzzle3 = "3";
gridSize = Short.parseShort(puzzle3);
}
else if(mIbtn4x4 == view) {
String puzzle4 = "4";
gridSize = Short.parseShort(puzzle4);
}
...
return Short.parseShort(gridSize);
public static short getGridSize(...) {
switch(view) {
case mIbtn3x3:
return 3;
case mIbtn4x4:
return 4;
case mIbtn5x5:
return 5;
}
}
但实际上,您正在对parseShort
执行许多不必要的调用。我会做更像这样的事情:
Short gridSize = -1;
if(mIbtn3x3 == view) {
String puzzle3 = "3";
gridSize = Short.parseShort(puzzle3);
}
else if(mIbtn4x4 == view) {
String puzzle4 = "4";
gridSize = Short.parseShort(puzzle4);
}
...
return Short.parseShort(gridSize);
public static short getGridSize(...) {
switch(view) {
case mIbtn3x3:
return 3;
case mIbtn4x4:
return 4;
case mIbtn5x5:
return 5;
}
}
第一,变量范围。
Java变量位于括号-{}之间
在这一行:
return Short.parseShort(PuzzleActivity.gridSize);
您只是没有在类中声明静态字段“gridSize”。
这样做:
static short getGridSize(){
private short gridSize;
if{...}
else if{...}
return gridSize;
}
Second error表示您使用错误的参数(类型)调用getGird(),并使用PuzzleActivity而不是ImageButtonmIbtn3x3、4x4、5x5是ImageButton。