Chciałem wydrukować wartość zmiennej na konsoli w celu debugowania, ale system.out.println nie działa.
Odpowiedzi:
System.out.println
i Log.d
oba idą do LogCat, a nie do konsoli.
Jestem nowy w programowaniu na Androida i robię to:
1) Utwórz klasę:
import android.util.Log; public final class Debug { prywatny debug () {} public static void out (Object msg) { Log.i ("info", msg.toString ()); } }
Po zakończeniu projektu usuń klasę.
2) Aby wydrukować wiadomość do LogCat napisz:
Debug.out ("something");
3) Utwórz filtr w LogCat i wpisz „info” w polu „by Log Tag”. Wszystkie Twoje wiadomości zostaną zapisane tutaj. :)
Wskazówka: utwórz kolejny filtr, aby odfiltrować wszystkie błędy i ułatwić debugowanie.
Pisanie poniższego kodu w celu wydrukowania czegokolwiek w LogCat działa doskonale !!
int score=0;
score++;
System.out.println(score);
wypisuje wynik w LogCat. Spróbuj tego
Myślę, że toast może być dobrą metodą pokazania wartości zmiennej!
Ok, Toast nie jest skomplikowany, ale potrzebuje obiektu kontekstowego do działania, może być MyActivity.this
, wtedy możesz napisać:
Toast.maketext(MyActivity.this, "Toast text to show", Toast.LENGTH_SHORT).show();
Chociaż Toast jest zasobem interfejsu użytkownika, to użycie go w innym wątku innym niż wątek ui spowoduje wysłanie błędu lub po prostu nie zadziała. Jeśli chcesz wydrukować zmienną, umieść zmienną name.toString()
i połącz ją z tekstem, który chcesz w parametrze maketext String; )
Jeśli testowany kod jest stosunkowo prosty, możesz po prostu utworzyć zwykły projekt Java w Eksploratorze pakietów i skopiować kod, uruchomić go i tam naprawić, a następnie skopiować z powrotem do projektu systemu Android.
Fakt, że System.out jest przekierowywany, jest dość irytujący, jeśli chodzi o szybkie testowanie prostych metod, ale jest to najłatwiejsze rozwiązanie, jakie znalazłem, zamiast konieczności uruchamiania emulatora urządzenia, aby sprawdzić, czy wyrażenie regularne działa.
Przy okazji, jeśli nie wiesz jaka jest dokładna lokalizacja twojego JSONObject w twoim JSONArray sugeruję użycie następującego kodu: (założyłem że "jsonArray" jest twoją główną zmienną ze wszystkimi danymi i szukam dokładnego obiekt wewnątrz tablicy z funkcją equals)
JSONArray list = new JSONArray();
if (jsonArray != null){
int len = jsonArray.length();
for (int i=0;i<len;i++)
{
boolean flag;
try {
flag = jsonArray.get(i).toString().equals(obj.toString());
//Excluding the item at position
if (!flag)
{
list.put(jsonArray.get(i));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
jsonArray = list;