当前位置: 首页 > 知识库问答 >
问题:

将捆绑包的内容打印到Logcat?

居晗日
2023-03-14

如果您记不住所有键的名称,是否有一种简单的方法可以将捆绑包的内容打印到Logcat(即使只打印键名称也很酷)?

共有3个答案

东方玉泽
2023-03-14

捆绑到字符串转换器:

public static String bundle2string(Bundle bundle) {
    if (bundle == null) {
        return null;
    }
    String string = "Bundle{";
    for (String key : bundle.keySet()) {
        string += " " + key + " => " + bundle.get(key) + ";";
    }
    string += " }Bundle";
    return string;
}

示例用法:

Log.d(TAG,"details="+bundle2string(details));

和输出:

details=Bundle{ RESPONSE_CODE => 5; }Bundle

请注意,箭头<代码>=

姜正初
2023-03-14

您可以通过打印映射值来获得更具体的信息,如下所示:

for (String key : bundle.keySet())
{
    Log.d("Bundle Debug", key + " = \"" + bundle.get(key) + "\"");
}
曾河
2023-03-14

Bundle#keySet()应该可以工作。

for (String key: bundle.keySet())
{
  Log.d ("myApplication", key + " is a key in the bundle");
}

如果您想获取对象,可以使用Bundle#get(字符串键)(这也在我在答案顶部链接的同一文档中)。但是,请记住使用泛型调用:

  • 您正在使用Object。如果您只是打印到日志,toString()将被调用,一切都会好的。但是,如果您真的想使用密钥对,您需要执行instanceof检查以避免调用错误的方法。
  • 由于toString将被调用,如果您有一个特殊的对象(例如ArrayList或特殊的Serializable/Parcelable附加项),您很可能不会从打印输出中获得任何有用的东西。
 类似资料:
  • 问题内容: 如果您不记得所有键的名称(即使只打印键名也很酷),是否有一种简单的方法可以将Log 的内容打印到Logcat? 问题答案: Bundle#keySet()应该可以工作。 而且,如果您想获取该对象,则可以使用(这也在我的答案顶部链接的同一文档中)。但是,请记住使用通用调用: 您正在使用对象。如果您只是打印到日志,将被调用,一切都会好的。但是,如果您实际上要使用密钥对,则需要进行检查以避免

  • 问题内容: 打印DIV内容的最佳方法是什么? 问题答案: 与早期版本相比有轻微变化-已在CHROME上测试

  • 问题内容: 我有一个名为的文本文件,其内容如下: 这个 是 文本 我将如何在Java 7中将确切的文件打印到屏幕上? 问题答案: 在Java 7之前: 添加异常处理 添加关闭流 从Java 7开始,无需关闭流,因为它实现了

  • 问题内容: 打印DIV内容的最佳方法是什么? 问题答案: 与早期版本相比有轻微变化-已在CHROME上测试

  • #include <iostream> #include <vector> using namespace std; int main () { vector<int> vec(10); // 10 zero-initialized elements for (int i = 0; i < vec.size(); i++) vec[i] = i; cout << "ve

  • 问题内容: 命令: 异常(来自日志文件) 但是以下jar可用。 关于上述错误有什么建议吗? 问题答案: 您需要安装几个捆绑软件才能使用控制台,如果仅使用Equinox启动,则您将不会获得这些捆绑软件。 使此工作最快的方法是创建一个具有以下内容的文件: 注意, 您将不得不根据实际拥有的版本检查这些捆绑软件的版本号。我使用SDK-4.2M6进行了尝试,其中某些可能已在RC3中更改。