我遇到了问题,我认为无法解决问题(我已经尝试过了)。 我做了Parcelable类来发送一个有意图的对象数组。在第一个活动中,我发送了这个对象数组。在第二个活动中,我发送了一个整体,然后我参加了第三个活动。 事实证明,它在捕获整体时给出了一个错误,没有任何应用程序打开,你不理解关闭,因为我得到的错误是第三个没有这样做的活动。如果我评论该行来获取整个活动,那么不要误会我的意思,并且我也完美地将数组传递给对象。但我也需要整个第二项活动。 保留代码以查看您的想法。
发送ob数组。第一个活动
> //creamos el intent y le pasamos la clase a mostrar
Intent i = new Intent(this, MainActivity.class);
Bundle contenedor= new Bundle();
//le cargamos al bundle un objeto parceable que se almacenara
//bajo la key "array" y contendrá nuestra lista
contenedor.putParcelable("array",lista_musica);
//cargamos el intent con el bundle
i.putExtras(contenedor);
//lanzamos el intent
startActivity(i);
发送整个第二个活动
Intent ii = new Intent(Generos.this,MainActivity.class);
ii.putExtra(“sentGeneroId”,generoId);
startActivity(ⅱ);
从第三项活动中收集数据
Bundle b = getIntent().getExtras();
if (b != null) {
lista_musica = b.getParcelable("array");
generoId = (Integer) b.get("sentGeneroId");
}
Log.i("mi error","el generoID: "+generoId);
Log.i("mi error","el ARRAY del main: "+lista_musica);
Parcelable类不认为这是错误的,正如我前面提到过的行
generoId =(整数)b.get(“sentGeneroId”);
不会给我错误并正确地向我发送对象数组。我已经尝试了一切。我设法不给我留下错误取消注释该行,但第三个活动中的数组总是为空,但不再是我做的............. 你看,如果有更多视力的人,我知道失败了。 谢谢。
答案 0 :(得分:1)
请尝试这种方式,希望这有助于您解决问题。
在你的SecondActivity中,你将generoId作为字符串输出 Bundle ,因此你可以直接从 Intent 而不是 Intent Bundle获得此值强>
generoId = Integer.parseInt(getIntent().getStringExtra("sentGeneroId"));
答案 1 :(得分:0)
似乎第一个Activity在发送对象数组时自动开始从第三个Activity接收数据。当然,直到第二个活动没有发出它,才能收到整个。将其标记为尝试获取某些内容而非任何内容时出错 我尝试将第一个数组发送到第二个Activity,它的作用是启动第二个活动,绕过第一个。 到目前为止,我还没有发现这个问题..........