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 に送信される最初の引数は通常、現在のクラスの名前を示す固定文字列です。

したがって、クラスの先頭で次のように定義できます。

private static final String TAG = "MyClassName";

次に、そのクラスのログ ステートメントに TAG を使用します。

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

控えめに言っても、あなたの関数はかなり奇妙に見えます。Log ステートメントにブレークポイントを設定し、デバッガーを実行してから、update に含まれる変数値を調べます。ほとんどの場合、 printAllRooms() はあなたが思っていることをしていません。

于 2012-08-02T19:50:37.870 に答える