【问题标题】:Passing Number[] array through Intent通过 Intent 传递 Number[] 数组
【发布时间】:2015-06-18 00:46:50
【问题描述】:

我正在努力将数组从一个活动传递到另一个活动。在我的 MainActivity 中,我构建了一个类似于此的数组:

Number[] s1 = {1, 8, 5, 2, 7, 4};

我需要这种格式的原因是在其他活动中使用 androidplot 绘制这些点。反正我是这样发送的:

Intent intent = new Intent(this, DataTable.class);
        intent.putExtra("plotpoints", s1);
        startActivity(intent);

在我的其他活动中,我尝试提取我的变量

Bundle extras = getIntent().getExtras();
Number[] series1Numbers = extras.getStringArray("plotpoints");

但是这给了我一个不兼容的类型错误。我知道问题出在我的这部分代码中:

extras.getStringArray("plotpoints");

但唯一可用于获取数组的函数是:

getParcelableArray();
getIntegerArrayList();
getParcelableArrayList();
getStringArrayList();
getSparceParcelableArray();
getBooleanArray();
getByteArray();
getCharArray();
getFloatArray();
getShortArray();
getDoubleArray();
getIntArray();
getLongArray();
getStringArray();
getCharSequenceArray();
getCharSequenceArrayList();

我没有看到类似于getNumberArray(); 的内容我如何才能解决这个小问题?欣赏它。 :)

【问题讨论】:

    标签: android arrays android-intent bundle androidplot


    【解决方案1】:

    Number 类实现了可序列化。所以你应该能够做到以下几点:

    Bundle extras = getIntent().getExtras();
    Number[] series1Numbers = (Number[]) extras.getSerializable("plotpoints");
    

    【讨论】:

      【解决方案2】:

      用途:

      int[] s1 = {1, 8, 5, 2, 7, 4};  
      

      为您的数组并使用以下方法检索它:

      int[] series1Numbers = extras.getIntArray("plotpoints");
      

      你有不兼容的类型,因为你把一个 int 数组作为额外的,而不是一个字符串数组。

      【讨论】:

        猜你喜欢
        • 2023-03-06
        • 1970-01-01
        • 2011-07-19
        • 1970-01-01
        • 1970-01-01
        • 2012-12-29
        • 1970-01-01
        • 2016-01-20
        • 1970-01-01
        相关资源
        最近更新 更多