使用Intent获取数据时出错

时间:2014-10-20 10:46:11

标签: java android android-intent parcelable

我遇到了问题,我认为无法解决问题(我已经尝试过了)。 我做了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”);

不会给我错误并正确地向我发送对象数组。我已经尝试了一切。我设法不给我留下错误取消注释该行,但第三个活动中的数组总是为空,但不再是我做的............. 你看,如果有更多视力的人,我知道失败了。 谢谢。

2 个答案:

答案 0 :(得分:1)

请尝试这种方式,希望这有助于您解决问题。

在你的SecondActivity中,你将generoId作为字符串输出 Bundle ,因此你可以直接从 Intent 而不是 Intent Bundle获得此值

generoId = Integer.parseInt(getIntent().getStringExtra("sentGeneroId"));

答案 1 :(得分:0)

似乎第一个Activity在发送对象数组时自动开始从第三个Activity接收数据。当然,直到第二个活动没有发出它,才能收到整个。将其标记为尝试获取某些内容而非任何内容时出错 我尝试将第一个数组发送到第二个Activity,它的作用是启动第二个活动,绕过第一个。 到目前为止,我还没有发现这个问题..........