我需要这个功能的帮助。
我知道if语句识别我的输入,因为它会影响其他地方的程序,但我不确定是怎么回事,因为即使在adb logcat中这个特定的日志也不会显示任何内容。
此函数所在的同一类文件中的其他日志语句显示正常,并且值更新似乎正在发生变化(“show all”因某些原因而空白,但我可以在获取日志后弄明白工作。)
我不确定如何搜索这个问题,因为它非常具体,我不知道是什么导致它(可能是我想不到的简单的事情。)
void command(String input)
{
//do stuff here
//update = whatever
if(input.equalsIgnoreCase("show all"))
{
update=printAllRooms();
Log.i(input, update);
}
else update=input; //just for testing, will delete later
}
printAllRooms功能:
public String printAllRooms() //for debug purposes
{
String result = "";
for (Iterator<Room> iterator = rooms.iterator(); iterator.hasNext();) {
Room current = iterator.next();
result = result + current.toString()+"\n";
Log.i("printallrooms", current.toString());
}
return result;
}
答案 0 :(得分:0)
关于使用日志的说明。
发送给Log的第一个参数通常是一个固定的字符串,表示您所在的类的名称。
因此,您可以在课程顶部定义:
private static final String TAG = "MyClassName";
然后,您将使用TAG作为该类中的日志语句。
Log.i(TAG, "My input was: " + input + " Update was: " + update;
说得客气一点,你的功能看起来很奇怪。在Log语句中设置断点,运行调试器,然后检查update中包含的变量值。最有可能的是,printAllRooms()没有按照你的想法做到。
答案 1 :(得分:0)
如果迭代器不适合您,请尝试使用For-Each循环:
for (Room r : rooms) {
result = result + r.toString()+"\n";
Log.i("printallrooms", r.toString());
}