【问题标题】:how to receive string[][] from sendBroadcast如何从 sendBroadcast 接收字符串 [] []
【发布时间】:2012-03-26 04:42:46
【问题描述】:

我想从 sendBroadcast 接收string[][] 但失败了。 首先,我设置了一个 sendBroadcast:

        Intent intent = new Intent("json_info");
        intent.putExtra("routeshout", result);
        sendBroadcast(intent);

其中的结果是string[][]

还有:

            @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            String[][] str_result = intent.getStringArrayExtra("routeshout");
            result.setText(str_result[0]);
            Log.d(TAG,"onReceive: "+str_result[1]);
        }

    };

但我可以通过申请String[][] str_result = intent.getStringArrayExtra("routeshout");获得string[][]

有什么建议吗???

【问题讨论】:

    标签: android string broadcastreceiver


    【解决方案1】:

    你可以试试下面的..

    Bundle extras = intent.getExtras();
    String[][] str_result = (String[][])extras.get("routeshout");
    

    我应该注意,我不确定是否可以通过包传递一个锯齿状数组,但由于它只存储字符串,我想它应该可以工作。

    【讨论】:

    • 它适用于“Bundle extras = intent.getExtras();”但是当 "String[][] str_result = (String[][])extras.get("routeshout");"我关机了,“03-26 04:53:04.490: E/AndroidRuntime(4460): FATAL EXCEPTION: main”
    • @Hao如果您希望通过捆绑传递复杂类型,则需要根据所需的效率和控制级别扩展 Serializable 或 Parcelable。该平台已为您提供了针对某些简单类型(字符串数组、值类型等)的此功能
    【解决方案2】:

    您可以只创建一个扩展 Serializable 的类,并为您的 String[][] 创建一个 getter setter,然后使用 getter setter 设置并使用 putExtra 将其传递给下一个意图,并使用 intent.getSerializableExtra() 检索。 Here 是一个相同的例子,只是用你的 String[][] 代替 List。

    【讨论】:

    • @Hao:如果这对您有帮助,请考虑upvoting它并接受这个答案(通过打勾)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    • 2020-01-11
    • 1970-01-01
    • 2023-03-31
    • 2016-06-01
    • 2021-12-08
    相关资源
    最近更新 更多