android中Activity与Activity之间相互传递一般都是通过Intent来进行之间的通信,所谓通信就是数据之间的传输,不要被所谓的名字吓到了,现在新建一个Demo 演示Activity之间是如何通过Intent传递数据,


activity_main.xml 就一个简单的Button按钮

    


MainActivity.java

public class MainActivity extends Activity {private Button btn_pass;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn_pass = (Button) findViewById(R.id.btn_pass);btn_pass.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {ArrayList persons = new ArrayList();for(int i=0;i<1000;i++){Person p = new Person();p.age = i+1;p.name="a"+i;persons.add(p);}Intent intent  = new Intent(MainActivity.this,SecnodActivity.class);intent.putExtra("persons", persons);startActivity(intent);}});}}

person.java传递的实体类,

public class Person implements Serializable{private static final long serialVersionUID = 1L;public int age;public String name;}

   

Person就封装了二个属性 但是Person类是实现了Serializable接口


点击按钮跳转到SecnodActivity.java 界面中,然后通过listview把传递过来的数据展示在界面上

public class SecnodActivity extends Activity {private ListView listview;private List  persons;private LayoutInflater inflater;protected void onCreate(android.os.Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_secnod);Intent intent  = getIntent();if(intent!=null){persons = (List) intent.getSerializableExtra("persons");}listview = (ListView) findViewById(R.id.listview);inflater = LayoutInflater.from(this);MyAdapter adapter = new MyAdapter();listview.setAdapter(adapter);}class MyAdapter extends BaseAdapter{@Overridepublic int getCount() {return persons.size();}@Overridepublic Object getItem(int position) {return persons.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder viewHolder;    if(convertView==null){    viewHolder = new ViewHolder();    convertView = inflater.inflate(R.layout.item, null);    viewHolder.tvAge = (TextView) convertView.findViewById(R.id.tvAge);    viewHolder.tvName = (TextView) convertView.findViewById(R.id.tvName);    convertView.setTag(viewHolder);    }else{    viewHolder = (ViewHolder) convertView.getTag();    }    viewHolder.tvAge.setText("年龄:  "+persons.get(position).age);    viewHolder.tvName.setText("年龄:  "+persons.get(position).name);    return convertView;}}class ViewHolder{TextView tvAge;TextView tvName;}}


界面图:


总结:总之通过Intent传递集合时,记得把集合中存储的对象实现Serializable接口


更多相关文章

  1. SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
  2. 一句话锁定MySQL数据占用元凶
  3. android arcgis(100.0.0)ArcGISMapImageLayer 图片图层点击查询要
  4. Android(安卓)app security安全问题总结
  5. Android(安卓)-- Intent传递对象的三种方法
  6. Android(安卓)Material Design 组件集合Demo,附源码地址 :CimoGall
  7. 如何使用SQLiteOpenHelper
  8. 【ZT】Android(安卓)Activity和Intent机制学习
  9. Android解析json数据的几种方法

随机推荐

  1. android 短信接收
  2. android自动化测试工具---monkeyrunner工
  3. Android NDK学习 Android.mk实例和NDK实
  4. 飞速浏览器3.0.0 webview 练手项目.
  5. android学习笔记17:文字设置
  6. 跑马灯效果实现方式三种
  7. Android studio包冲突错误 IncompatibleC
  8. 在Unity中捕捉Android的常用按钮返回事件
  9. Android开发之EditText
  10. Android(安卓)Service生命周期及用法!