Android: Як я можу надрукувати змінну на консолі eclipse


Відповіді:


117

System.out.printlnі Log.dобидва переходять до LogCat, а не до консолі.


1
Використання LibGDX та System.out.println переходить до консолі. Шукаю спосіб отримати його в logcat, щоб я міг увійти / налагодити свій додаток на реальному пристрої.
Madmenyo


6

Я новачок у розробці Android, і я роблю це:

1) Створіть клас:

імпортувати android.util.Log;

публічний фінальний клас Налагодження {
    приватна налагодження () {}

    загальнодоступна статична недійсність (повідомлення про об’єкт) {
        Log.i ("інформація", msg.toString ());
    }
}

Після завершення проекту видаліть клас.

2) Щоб надрукувати повідомлення в LogCat, напишіть:

Debug.out ("something");

3) Створіть фільтр у LogCat і напишіть "інформація" у введенні "за тегом журналу". Всі ваші повідомлення будуть написані тут. :)

Порада. Створіть інший фільтр, щоб легко відфільтрувати всі помилки для налагодження.


8
Це не гарна ідея писати такий код, оскільки клас Log знайомий більшості ... всім розробникам Android. Обертаючи його у своєму власному класі і не додаючи нових функціональних можливостей, все, що ви робите, - це затуляти значення вашого коду людям, крім вас самих.
Томас Дігнан

6

Написання наступного коду для друку чого-небудь на LogCat чудово працює !!

int score=0;
score++;
System.out.println(score);

виводить оцінку на LogCat. Спробуйте це


3

Я думаю, тост, можливо, хороший спосіб показати значення змінної!


1
Проблема виникає з Toast, коли значень багато і швидко, наприклад, ax, y координати реєстрації на ACTION_MOVE. У таких випадках кращим рішенням може бути екранний текст або вихід журналу.
TechNyquist

1

Гаразд, Toast не складний, але для роботи йому потрібен контекстний об’єкт, можливо MyActivity.this, тоді ви можете написати:

Toast.maketext(MyActivity.this, "Toast text to show", Toast.LENGTH_SHORT).show();

Незважаючи на те, що Toast є ресурсом інтерфейсу користувача, тоді використання його в іншому потоці, відмінному від потоку інтерфейсу користувача, призведе до помилки або просто не спрацює. Якщо ви хочете надрукувати змінну, вставте змінну name.toString()та зв’яжіть це з текстом, який ви хочете, у параметрі maketext String; )


0

тост - погана ідея, надто "складний" для друку значення змінної. використовуйте log або sop, і як вже було сказано, їх вихід виводиться на logcat. це має сенс лише в тому випадку, якщо ви хочете надати цю інформацію кінцевому користувачеві ...


0

Якщо код, який ви тестуєте, відносно простий, тоді ви можете просто створити звичайний проект Java в Package Explorer і скопіювати код, запустити його та виправити там, а потім скопіювати назад у свій проект Android.

Той факт, що System.out переспрямовано, досить дратує для швидкого тестування простих методів, але це найпростіше рішення, яке я знайшов, замість того, щоб запускати емулятор пристрою лише для того, щоб перевірити, чи працює регулярний вираз.


0

До речі, якщо ви не знаєте, яке саме розташування вашого JSONObject всередині вашого JSONArray, я пропоную використовувати такий код: (Я припустив, що "jsonArray" - це ваша основна змінна з усіма даними, і я шукаю точний об'єкт усередині масиву з рівною функцією)

    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;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.