Intent是一个负责不同组件(比如两个activities)之间传递消息的对象。Intent对象可用来启动另一个Activity,具体如下:
Intent intent = new Intent(this, DisplayMessageActivity.class);
第一个参数是当前Activity的实例,第二个参数是要启动的Activity
然后给启动的Activity传递消息:
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
putExtra()提取提取第一个参数的键值和第二个参数的值并交给intent,EXTRA_MESSAGE一半在开始定义:
public class MainActivity extends Activity { public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE"; ... }然后启动第二个Activity:startActivity(intent);建立DisplayMessageActivity类,并在manifest中声明,<application ... > ... <activity android:name="com.example.myfirstapp.DisplayMessageActivity" android:label="@string/title_activity_display_message" android:parentActivityName="com.example.myfirstapp.MainActivity" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.myfirstapp.MainActivity" /> </activity> </application>接收Intent,
Intent intent = getIntent(); String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);显示消息
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Get the message from the intent Intent intent = getIntent(); String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); // Create the text view TextView textView = new TextView(this); textView.setTextSize(40); textView.setText(message); // Set the text view as the activity layout setContentView(textView); }