在我的onPause中,我收集问题行和可见按钮计数。在onResume我然后使用它们来恢复用户所在的位置。底部的代码是针对问题而且工作正常。问题在于可见按钮。 If语句被忽略。 Logcat向我显示重新调整的可见按钮的值(在这种情况下)是3但是它被忽略。我尝试过不同的方法,例如尝试将“vis”转换为if语句之前的整数,只有numberformat例外。这个当前代码是为if语句声明字符串的值,但没有用。我希望有人能指出我正确的方向。亲切的问候德里克
private void restoreVis () {
int i = 2;
int j = 3;
String strI = String.valueOf(i);
String strJ = String.valueOf(j);
String file1 = "vis";
try {
BufferedReader inputReader = new BufferedReader(new InputStreamReader(
openFileInput(file1)));
String inputString;
StringBuffer stringBuffer = new StringBuffer();
while ((inputString = inputReader.readLine()) != null) {
stringBuffer.append(inputString + "\n");
}
String vis = stringBuffer.toString();
Log.i(LOGTAG, vis + " visible buttons");
if (vis.equals(strI)) {
eliminateChooser();
eliminateChooser();
Log.i(LOGTAG, "equals 2");
} else if (vis.equals(strJ)) {
eliminateChooser();
Log.i(LOGTAG, "equals 3");
}else{
Log.i(LOGTAG, "vis equals 4");
}
} catch (IOException e) {
e.printStackTrace();
}
Log.i(LOGTAG," end of vis");
}
LogCat
06-20 17:50:07.603: I/ON(18818): 3 visible buttons
06-20 17:50:07.608: I/ON(18818): vis equals 4
06-20 17:50:35.513: I/ON(18818): on Pause called
06-20 17:50:35.513: I/ON(18818): 8 row Id
06-20 17:50:35.513: I/System.out(18818): Visible children: 4
private void restoreGameState() {
String file = "row";
try {
BufferedReader inputReader = new BufferedReader(new InputStreamReader(
openFileInput(file)));
String inputString;
StringBuffer stringBuffer = new StringBuffer();
while ((inputString = inputReader.readLine()) != null) {
stringBuffer.append(inputString + "\n");
}
String row = stringBuffer.toString();
quest = datasource.findGameState(null, row);
refreshDisplay();
Log.i(LOGTAG, row + " value of rowId");
} catch (IOException e) {
e.printStackTrace();
}
}
答案 0 :(得分:4)
我认为这种行为背后的原因是你要将3\n
与3
进行比较,而这些不相等。从\n
移除stringBuffer.append(inputString + "\n");
。
答案 1 :(得分:0)
我建议你使用类似的东西:
else if (Integer.valueOf(vis).intValue() == j)
代替。整数比较更容易。