我的Android笔记(三)——使用Intent在Activity间传值
3403 点击·0 回帖
![]() | ![]() | |
![]() | 在Android中, 一个Activity可以理解为一个屏幕。 当程序要从一个Activity切换到另外一个Activity时,就需要用到Intent。 Intent专门负责Android程序之间、以及程序内Activity与Service之间交互、通信。 以下是一个简单的demo,使用Intent从一个Activity切换到另一个Activity,并且传递一个数据进行显示。 先看一下效果图—— 第一个Activity: ![]() 输入一个姓名“Barry”: ![]() 点击“确定”,跳转到另一个Activity,并显示“你好,Barry!”: ![]() 代码如下: Demo_intentActivity.java [java] package barry.Android.intent; import Android.app.Activity; import Android.content.Intent; import Android.os.Bundle; import Android.view.View; import Android.view.View.OnClickListener; import Android.widget.Button; import Android.widget.EditText; public class Demo_intentActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn = (Button) findViewById(R.id.button1); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String yourName = ((EditText) findViewById(R.id.name_text)) .getText().toString(); Intent intent = new Intent(); intent.setClass(Demo_intentActivity.this, RecordActivity.class); intent.putExtra("name", yourName);// 在Intent中设置要传递的数据 startActivity(intent);// 启动新的Activity Demo_intentActivity.this.finish();// 结束就的Activity } }); } } package barry.Android.intent; import Android.app.Activity; import Android.content.Intent; import Android.os.Bundle; import Android.view.View; import Android.view.View.OnClickListener; import Android.widget.Button; import Android.widget.EditText; public class Demo_intentActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn = (Button) findViewById(R.id.button1); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String yourName = ((EditText) findViewById(R.id.name_text)) .getText().toString(); Intent intent = new Intent(); intent.setClass(Demo_intentActivity.this, RecordActivity.class); intent.putExtra("name", yourName);// 在Intent中设置要传递的数据 startActivity(intent);// 启动新的Activity Demo_intentActivity.this.finish();// 结束就的Activity } }); } }以及它的布局文件main.xml [html] <?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" > <EditText Android:id="@+id/name_text" Android:hint="输入你的名字" Android:layout_width="fill_parent" Android:layout_height="wrap_content" /> <Button Android:text="确定" Android:id="@+id/button1" Android:layout_width="fill_parent" Android:layout_height="wrap_content"/> </LinearLayout> <?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" > <EditText Android:id="@+id/name_text" Android:hint="输入你的名字" Android:layout_width="fill_parent" Android:layout_height="wrap_content" /> <Button Android:text="确定" Android:id="@+id/button1" Android:layout_width="fill_parent" Android:layout_height="wrap_content"/> </LinearLayout> 另一个Activity RecordActivity.java [java] package barry.Android.intent; import Android.app.Activity; import Android.content.Intent; import Android.os.Bundle; import Android.widget.TextView; public class RecordActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.record); Intent intent = getIntent(); String yourname = intent.getStringExtra("name");//从Intent中获取数据 TextView text_show = (TextView) findViewById(R.id.text_show); text_show.setText("你好,"+yourname+"!"); //显示到屏幕上 } } package barry.Android.intent; import Android.app.Activity; import Android.content.Intent; import Android.os.Bundle; import Android.widget.TextView; public class RecordActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.record); Intent intent = getIntent(); String yourname = intent.getStringExtra("name");//从Intent中获取数据 TextView text_show = (TextView) findViewById(R.id.text_show); text_show.setText("你好,"+yourname+"!"); //显示到屏幕上 } } 及其布局文件 record.xml [html] <?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/text_show" Android:layout_width="fill_parent" Android:layout_height="fill_parent" /> </LinearLayout> <?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/text_show" Android:layout_width="fill_parent" Android:layout_height="fill_parent" /> </LinearLayout> 需要注意的是,每个Activity都需要在AndroidManiFest.xml中声明一下,所以在AndroidManiFest.xml中需要加入: [html] <activity Android:name=".RecordActivity"></activity> | |
![]() | ![]() |