通过 Intent 传递 Number[] 数组

Passing Number[] array through Intent

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

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

我需要这种格式的原因是在另一个 activity 中使用 androidplot 绘制这些点。不管怎样,我是这样发送的:

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

在我的另一个 activity 中,我尝试提取我的变量

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(); 我如何解决这个小问题?欣赏它。 :)

使用:

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

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

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

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

Number class 实现了 Serializable。所以你应该能够做到以下几点:

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