`
zengyan2012
  • 浏览: 413751 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Intent ArrayList

阅读更多

两种方法:

1. 转自:http://blog.sina.com.cn/s/blog_667ad4d80100r2gk.html

很多人好像在郁闷这个问题,我这有个比较笨的方法:用bundle.putParcelableArrayList(list);
当然不能直接把list放进去了,你得经过加工。如下
Intent intent = new Intent();
Bundle bundle = new Bundle();
ArrayList list = new ArrayList();//这个arraylist是可以直接在bundle里传的,所以我们可以借用一下它的功能
list.add(list2);//这个list2才是你真正想要传过去的list。我们把它放在arraylis中,借助它传过去
bundle.putParcelableArrayList("list", list);
intent.putExtras(bundle);
intent.setClass(XXX1Activity.this,XXX2.class);
startActivity(intent);

取的时候:
ArrayList list = bundle.getParcelableArrayList("list");
list2= (List<Object>) list.get(0);//强转成你自己定义的list,这样list2就是你传过来的那个list了。

 

2.转自:http://apps.hi.baidu.com/share/detail/22568390

ntent可以传递Integer和String类型的ArrayList
如果不是Integer或者String,感觉只能用这个万能的串行化了
首先定义一个要传递的Class,要引用Serializable接口,类中定义了一个值为eoeMobile的String域

  1. package com.eoemobile.sunhr.test;
  2. import java.io.Serializable;
  3. public class Data implements Serializable{
  4. /**
  5. *
  6. */
  7. private static final long serialVersionUID = -6746185864607829411L;
  8. private String mValue = null;
  9. public Data(){
  10. mValue = new String("eoeMobile");
  11. }
  12. public String getValue(){
  13. return mValue;
  14. }
  15. }
复制代码



然后在第一个Acrivity——Test1对应的xml中,添加一个Button,Test1的代码如下

  1. package com.eoemobile.sunhr.test;
  2. import android.app.Activity;
  3. import android.content.Intent;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.view.View.OnClickListener;
  7. import android.widget.Button;
  8. public class Test1 extends Activity {
  9. /** Called when the activity is first created. */
  10. @Override
  11. public void onCreate(Bundle savedInstanceState) {
  12. super.onCreate(savedInstanceState);
  13. setContentView(R.layout.main);
  14. Button button = (Button)findViewById(R.id.test1_button);
  15. button.setOnClickListener(new OnClickListener(){
  16. @Override
  17. public void onClick(View v) {
  18. //Initialize the object
  19. Data data = new Data();
  20. //Put object into intent
  21. Intent intent = new Intent(Test1.this,Test2.class);
  22. intent.putExtra("DATA", data);
  23. startActivity(intent);
  24. }
  25. });
  26. }
  27. }
复制代码



在要跳转到的Test2对应的xml中添加一个TextView,Test2代码如下

  1. package com.eoemobile.sunhr.test;
  2. import android.app.Activity;
  3. import android.content.Intent;
  4. import android.os.Bundle;
  5. import android.widget.TextView;
  6. public class Test2 extends Activity {
  7. @Override
  8. protected void onCreate(Bundle savedInstanceState) {
  9. super.onCreate(savedInstanceState);
  10. setContentView(R.layout.test2);
  11. //Get object
  12. Intent intent = this.getIntent();
  13. Data data = (Data)intent.getSerializableExtra("DATA");
  14. //Output
  15. if(data != null){
  16. TextView tv = (TextView)findViewById(R.id.test2_text);
  17. tv.setText(data.getValue());
  18. }
  19. }
  20. }

 

分享到:
评论

相关推荐

    intent传递ArrayList&lt;T&gt;

    当我们需要在不同的组件之间传递一个ArrayList对象时,由于Intent默认只支持基本类型和Parcelable接口实现类的数据传递,因此,我们需要特殊处理ArrayList,特别是当T是自定义的对象时。本篇将详细介绍如何使用...

    Android编程实现使用Intent传输包含自定义类的ArrayList示例

    本文实例讲述了Android编程实现使用Intent传输包含自定义类的ArrayList。分享给大家供大家参考,具体如下: 前言 之前项目中通过Intent只是传输简单的字符串,这次因为需要在前一个页面联网获取对象数据,然后在下一...

    Android Intent多种传值方式

    在Android应用开发中,Intent是一种非常关键的组件,它用于在不同的组件之间传递消息和数据。Intent不仅可以启动或启动服务,还可以实现Activity之间的数据传递。本文将深入探讨Android Intent的多种传值方式。 1. ...

    Intent的简单使用

    在Android开发中,...4. **使用ParcelableArrayList** 或 **SerializableArrayList**:当你需要传递ArrayList时,可以使用`putParcelableArrayListExtra(String name, ArrayList&lt;? extends Parcelable&gt; value)`或`...

    Android利用intent实现分享功能

    List&lt;Intent&gt; targetedShareIntents = new ArrayList(); for (ResolveInfo info : resInfo) { String packageName = info.activityInfo.packageName; if ("com.tencent.mm".equals(packageName) || ...

    Intent传递对象、对象数组

    List&lt;MyObject&gt; objectList = new ArrayList(); objectList.add(new MyObject("李四", 30)); objectList.add(new MyObject("王五", 35)); Intent intent = new Intent(context, TargetActivity.class); intent....

    intent跳转传值

    在Android应用开发中,Intent是连接应用程序组件之间通信的主要方式,它可以用来启动新的Activity或服务,也可以传递数据。"Intent跳转传值"是Android开发中的一个基础且重要的概念,它使得不同组件间的数据共享变得...

    Intent_Bundle_传参数

    Bundle支持的数据类型包括基本类型(如int、float、String等)、集合类型(如ArrayList、HashMap等)以及Parcelable和Serializable接口实现的对象。因此,通过Bundle,Intent可以传递更丰富的信息。 1. **创建和...

    android arraylist 实现 listview

    Activity间的参数传递通常是通过Intent完成的。在启动新Activity时,我们可以通过`putExtra()`方法传递数据,然后在目标Activity中使用`getIntent().getStringExtra()`或`getIntent().getSerializableExtra()`等方法...

    Android中Intent Demo

    8. 类型安全的额外数据:Android提供了一些类型安全的`putExtra()`方法,如`putExtra(String key, boolean value)`、`putParcelableArrayListExtra(String key, ArrayList&lt;? extends Parcelable&gt; value)`等,这些...

    Android Intent传递对象

    在Android应用开发中,Intent是连接各个组件的重要桥梁,它被用来启动Activity、Service,以及在组件间传递数据。当我们需要在Intent中传递复杂对象时,Android提供了两种序列化方式:Serializable和Parcelable。...

    【Intent传递】对象、数组

    3. 集合:List、ArrayList等集合也可以通过putParcelableArrayListExtra()传递,接收端用getParcelableArrayListExtra()。对于非Parcelable对象的集合,需要先转换为Parcelable类型的集合,或使用Bundle。 五、注意...

    android 从activity用intent跳转到listactivity并在其中用simpleadapter在listview中显示数据列

    ArrayList, String&gt;&gt; dataList = (ArrayList, String&gt;&gt;) intent.getSerializableExtra("data_list"); ``` 这里需要注意,由于HashMap不是Parcelable或Serializable,所以我们需要使用Serializable接口来实现数据的...

    android activityIntent 传值 传对象

    对于数组和集合,如ArrayList,Intent也提供了相应的putExtra()方法,如putIntegerArrayListExtra()、putStringArrayListExtra()等。传递和接收示例如下: ```java // 发送端 ArrayList&lt;String&gt; list = new ...

    启动另一个Activity并利用Intent传输数据

    除了基本数据类型,Intent还可以传输更复杂的数据结构,如Parcelable对象(如自定义类)和Serializable对象(如ArrayList)。Parcelable是Android平台提供的一种高效的数据序列化方式,适用于频繁的数据交换;而...

    借助Intent实现Android工程中Activity之间Java对象的传递.zip

    List&lt;MyParcelableObject&gt; list = new ArrayList(); // 添加元素到list Intent intent = new Intent(currentActivity, TargetActivity.class); intent.putParcelableArrayListExtra("key", list); startActivity...

    intent传值

    - 可以使用`putIntegerArrayListExtra()`, `putStringArrayListExtra()`等方法传递ArrayList。 - 对于自定义类型的集合,同样需要实现`Parcelable`或`Serializable`。 6. **文件和大对象的传递** - 对于大文件或...

    android调用系统邮件组件 Intent匹配流程

    Intent intent = new Intent(Intent.ACTION_SEND); ``` 2. **设置数据类型**: 邮件通常包含文本内容,所以我们要设置Intent的数据类型为`text/plain`,这告诉系统我们处理的是纯文本邮件。可以这样设置: ```...

    ListVIew用法Intent传递据图片以及Android适配器

    List, String&gt;&gt; dataList = new ArrayList(); // 添加数据到dataList SimpleAdapter adapter = new SimpleAdapter( MainActivity.this, // 上下文 dataList, // 数据列表 R.layout.list_item, // 布局文件,定义...

Global site tag (gtag.js) - Google Analytics