0

我无法弄清楚输出 int logcat 的正确方法,并且api 文档对我来说没有意义。

我觉得应该这样做:

package com.example.conflip;

import java.util.Random;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        flip();
    }

    public int flip() {
        Random randomNumber = new Random();
        int outcome = randomNumber.nextInt(2);
        Log.d(outcome);
        return outcome;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

但是我只得到错误The method d(String, String) in the type Log is not applicable for the arguments (int)

我需要将 int 转换为字符串吗?如果是这样,怎么办?

更新:

尽管以下所有解决方案都有效,但在我在 DDMS 中选择我的硬件设备之前,LogCat 不会显示输出。

4

6 回答 6

2

根据需要使用Integer.toString(outcome)String 作为 Log 中的参数

so overall Log.d(tag_name, Integer.toString(outcome));

在这里您可以查看日志的详细信息。

于 2013-03-15T06:19:51.603 回答
2

在 onCreate 方法之前添加这一行

private static final String TAG = "your activity name";

现在你在翻转

Log.d(TAG, "outcome = " + outcome);
于 2013-03-15T06:20:45.800 回答
1
public class MainActivity extends Activity {

private String TAG = "MainActivity"; //-------------Include this-----------
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        flip();   //----You miss this out perhaps-----
    }
public int flip() {
    Random randomNumber = new Random();
    int outcome = randomNumber.nextInt(2);
    Log.d(TAG, "Checking Outcome Value:" +outcome); //----Include this--------
    return outcome;
}

您还可以将 Log.d 更改为 Log.i(信息)、Log.w(警告)、Log.e(错误)

这取决于您要显示的消息类型(主要是颜色不同)。

于 2013-03-15T06:53:04.913 回答
1

用这个:

public int flip() {
    Random randomNumber = new Random();
    int outcome = randomNumber.nextInt(2);
   Log.d("This is the output", outcome.toString());
    return outcome;
}
于 2013-03-15T06:30:02.203 回答
1

使用 Log.d(字符串,字符串)。第一个字符串是一个将出现在 logcat 中的标签 - 一个您可以搜索的简单标识符。第二个是打印到日志的消息。要获取 int 的字符串,请使用 Integer.toString(value)。

于 2013-03-15T06:20:13.453 回答
0

您应该使用 string.valueof(integer) 来获取 log cat 中的输出,例如。

int outcome = randomNumber.nextInt(2);
        Log.d("urtag",String.valueOf(outcome));
于 2013-03-15T06:56:29.073 回答