通过 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");
我正在努力将数组从一个 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");