多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
1、使用Intent可以很方便地在不同的Activity间传递数据,这个也是官方推荐的方式,但是也有一定的局限性,就是Intent无法传递不能序列化的对象,然而这个问题可以用静态变量来解决~ 2、下面来具体举个例子,新建一个Android工程,如下图: ![](https://box.kancloud.cn/2016-08-23_57bc06b09adc1.jpg) 3、在布局文件(“res/layout”)中添加按钮“Button”,代码如下: ~~~ <Button android:id="@+id/button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="使用静态变量传递数据" /> ~~~ 4、在当前目录下再建一个布局文件“other.xml”,在其中添加一个“TextView”标签,代码如下: ~~~ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/msg" android:layout_width="fill_parent" android:layout_height="fill_parent" > </TextView> </LinearLayout> ~~~ 5、右击“src”下的包,新建类“OtherActivity”并使其继承“Activity”,在这个类中添加“onCreate”方法,并在其中添加成员“textview”、“name”、“age”,最后将其值设置给“textview”,代码如下: ~~~ package com.android.myintent; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class OtherActivity extends Activity { private TextView textview; // 添加一个静态变量 // 欲传递数据,添加一个public属性的静态变量 public static String name; public static int age; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.other);// 加载布局文件 textview = (TextView) this.findViewById(R.id.msg);// 查找并加载 textview.setText("-name-->>" + name + "\n" + "-age-->>" + age); } public OtherActivity() { // TODO Auto-generated constructor stub } } ~~~ 6、在“Main.java”里添加一个“Button”类型成员,设置点击事件,并创建意图为OtherActivity中的静态变量赋值,代码如下: ~~~ package com.android.myintent; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.Button; public class Main extends Activity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) this.findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // 声明一个意图 Intent intent = new Intent();// 可以构造一个空意图,在下面传递类 intent.setClass(Main.this, OtherActivity.class); OtherActivity.age = 23; OtherActivity.name = "Jack"; startActivity(intent); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } ~~~ 7、在“AndroidManifest.xml”中添加一个“activity.xml”设置,“name”为“.OtherActivity”,使系统能找到该类,代码: ~~~ <activity android:name=".OtherActivity" > </activity> ~~~ 8、运行程序,结果截图如下: ![](https://box.kancloud.cn/2016-08-23_57bc06b0de42f.jpg) ![](https://box.kancloud.cn/2016-08-23_57bc06b128287.jpg) Ps:My second Android Application~