0

我需要有关此功能的帮助。

我知道 if 语句会识别我的输入,因为它会影响其他地方的程序,但我不确定发生了什么,因为即使在 adb logcat 中,这个特定的日志也不会显示任何内容。

该函数来自的同一类文件中的其他日志语句显示得很好,并且值更新似乎正在发生变化(“全部显示”出于某种原因将其空白,但我可以在我让日志工作后弄清楚这一点。 )

我不确定如何搜索这个问题,因为它非常具体,我不知道是什么原因造成的(不过可能是我没有想到的简单问题。)

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;
}
4

2 回答 2

0

如果迭代器对您不起作用,请尝试使用 For-Each 循环:

for (Room r : rooms) {
    result = result + r.toString()+"\n";
    Log.i("printallrooms", r.toString());
}
于 2012-08-07T14:20:44.940 回答
0

关于使用 Log 的说明。

发送给 Log 的第一个参数通常是一个固定字符串,指示您所在的类的名称。

因此,在您的班级顶部,您可以定义:

private static final String TAG = "MyClassName";

然后,您将使用 TAG 作为该类中的日志语句。

Log.i(TAG, "My input was: " + input + " Update was: " + update;

说得客气一点,你的函数看起来很奇怪。在您的 Log 语句中设置断点,运行调试器,然后检查更新中包含的变量值。最有可能的是, printAllRooms() 没有按照您的想法进行。

于 2012-08-02T19:50:37.870 回答