本章节翻译自《Beginning-Android-4-Application-Development》,如有翻译不当的地方,敬请指出。

原书购买地址http://www.amazon.com/Beginning-Android-4-Application-Development/dp/1118199545/


在一个Android应用中可以包含零个或多个Acivity。当你的应用中包含多个Activity时,通常要在各个Activity中间跳转。在Android中,完成这些操作需要使用Intent的组件。

理解这个既重要又抽象概念的最好办法,就是尝试一下。下面的例子展示如何在两个Activity之间跳转。

1. 创建一个工程,UsingIntent。

2. 创建两个Activity:UsingIntentActivity和SecondActivitty。

3. AndroidManifest.xml中的代码。

[java] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <manifestxmlns:android="http://schemas.android.com/apk/res/android"
  3. package="net.horsttnann.UsingIntent"
  4. android:versionCode="1"
  5. android:versionName="1.0">
  6. <uses-sdkandroid:minSdkVersion="14"/>
  7. <application
  8. android:icon="@drawable/ic_launcher"
  9. android:label="@string/app_name">
  10. <activity
  11. android:name=".UsingIntentActivity"
  12. android:label="@string/app_name">
  13. <intent-filter>
  14. <actionandroid:name="android.intent.action.MAIN"/>
  15. <categoryandroid:name="android.intent.category.LAUNCHER"/>
  16. </intent-filter>
  17. </activity>
  18. <activity
  19. android:name=".SecondActivity"
  20. android:label="SecondActivity">
  21. <intent-filter>
  22. <actionandroid:name="net.horsttnann.SecondActivity"/>
  23. <categoryandroid:name="android.intent.category.DEFAULT"/>
  24. </intent-filter>
  25. </activity>
  26. </application>
  27. </manifest>
4. 在res/layout文件夹下,新建一个叫secondactivity.xml的文件。 [java] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical">
  6. <TextView
  7. android:layout_width="fill_parent"
  8. android:layout_height="wrap_content"
  9. android:text="ThisistheSecondActivity!"/>
  10. <TextView
  11. android:layout_width="fill_parent"
  12. android:layout_height="wrap_content"
  13. android:text="Pleaseenteryourname"/>
  14. <EditText
  15. android:id="@+id/txt_username"
  16. android:layout_width="fill_parent"
  17. android:layout_height="wrap_content"/>
  18. <Button
  19. android:id="@+id/btn_OK"
  20. android:layout_width="fill_parent"
  21. android:layout_height="wrap_content"
  22. android:onClick="onClick"
  23. android:text="OK"/>
  24. </LinearLayout>
5. SecondActivity中的代码。 [java] view plain copy
  1. publicclassSecondActivityextendsActivity{
  2. @Override
  3. publicvoidonCreate(BundlesavedInstanceState){
  4. super.onCreate(savedInstanceState);
  5. setContentView(R.layout.secondactivity);
  6. }
  7. }
6. main.xml中的代码。 [java] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical">
  6. <Button
  7. android:layout_width="fill_parent"
  8. android:layout_height="wrap_content"
  9. android:onClick="onClick"
  10. android:text="Displaysecondactivity"/>
  11. </LinearLayout>
7. UsingIntentActivity中的代码。 [java] view plain copy
  1. publicclassUsingIntentActivityextendsActivity{
  2. /**Calledwhentheactivityisfirstcreated.*/
  3. @Override
  4. publicvoidonCreate(BundlesavedInstanceState){
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.main);
  7. }
  8. publicvoidonClick(Viewview){
  9. startActivity(newIntent("net.horsttnann.SecondActivity"));
  10. }
  11. }
8. 按F11调试。




Intent-Filter中的anction属性尽量使用反转域名,这样就能减少被其他使用相同action的程序启动的几率。

Intent-Filter中的category属性是android.intent.category.DEFAULT。只有添加了这个属性,这个Activity才能被另外一个Activity使用startActivity()方法来开启。

还有另外一种启动Activity的方法,但如果想使用这个方法,就必须确保这两个Activity在同一个工程下面。

[java] view plain copy
  1. startActivity(newIntent(this,SecondActivity.class));

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. android 获取Bitmap 的两种方法
  3. Android的蓝牙实例代码中找不到REQUEST_ENABLE_BT
  4. Android自定义Toast样式和时间
  5. 读取联系人 2.0
  6. Android(安卓)windowSoftInputMode属性
  7. 基于Android的计算器(代码行数足够用来交大作业)
  8. android 获取一个apk的信息
  9. ExpandableListView小图标替换

随机推荐

  1. Android图表分析的开发
  2. alarm从上层到底层完整调用流程
  3. Android实时监听网络状态
  4. android 手机号码运营商判断
  5. Android类动态加载技术
  6. Android(安卓)配置Adb环境
  7. Android安全机制(转载)
  8. Android界面坐标图示和Rect(矩形)简介
  9. Android使用第三方外部JAR库文件
  10. Flutter技术概览