Intent传值之通过Application传值
传值第五种方式:
* 程序的全局变量application
* 特点:1.一个程序application对象只能有一个
* 2.application对象在程序启动时就创建
* 3.通常用来存放全局变量
xml布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Button android:id="@+id/btn01" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="跳转到第二个页面"/> </RelativeLayout>
myApplication.java
package com.example.day05_application_passvalue; import android.app.Application; import android.util.Log; /** * * * @author my * */ //注意:需要在AndroidManifest.xml清单文件中注册自定义application public class myApplication extends Application{ private String TAG = "MainActivity"; private String text = "呵呵呵呵"; public String getTAG() { return TAG; } public void setTAG(String tAG) { TAG = tAG; } public String getText() { return text; } public void setText(String text) { this.text = text; } //重写onCreate()方法,application创建的时候调用 @Override public void onCreate() { super.onCreate(); Log.i(TAG, "MainActivity-->myApplication"); } }
MainActivity.java
package com.example.day05_application_passvalue; import android.os.Bundle; import android.app.Activity; import android.app.Application; import android.content.Intent; import android.util.Log; import android.view.Menu; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.btn01); //获取Application对象 myApplication app = (myApplication)getApplication(); //通过application对象获得值 String text = app.getText(); Log.i("MainActivity", text); //改变值 app.setText("hahhah,值在Activity中被改变"); /** * button点击事件,点击跳转到另一个页面 */ btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this,Activity2.class); startActivity(intent); } }); } }
Activity2.java
package com.example.day05_application_passvalue; import android.app.Activity; import android.app.Application; import android.os.Bundle; import android.util.Log; import android.widget.TextView; public class Activity2 extends Activity{ private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.layout1); tv = (TextView) findViewById(R.id.text01); Log.i("MainActivity", "MainActity-->Activity2"); myApplication app = (myApplication) getApplication(); tv.setText(app.getText()); } }