【Android(安卓)开发教程】链接Activities
16lz
2021-01-25
本章节翻译自《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- <?xmlversion="1.0"encoding="utf-8"?>
- <manifestxmlns:android="http://schemas.android.com/apk/res/android"
- package="net.horsttnann.UsingIntent"
- android:versionCode="1"
- android:versionName="1.0">
- <uses-sdkandroid:minSdkVersion="14"/>
- <application
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name">
- <activity
- android:name=".UsingIntentActivity"
- android:label="@string/app_name">
- <intent-filter>
- <actionandroid:name="android.intent.action.MAIN"/>
- <categoryandroid:name="android.intent.category.LAUNCHER"/>
- </intent-filter>
- </activity>
- <activity
- android:name=".SecondActivity"
- android:label="SecondActivity">
- <intent-filter>
- <actionandroid:name="net.horsttnann.SecondActivity"/>
- <categoryandroid:name="android.intent.category.DEFAULT"/>
- </intent-filter>
- </activity>
- </application>
- </manifest>
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical">
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="ThisistheSecondActivity!"/>
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Pleaseenteryourname"/>
- <EditText
- android:id="@+id/txt_username"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"/>
- <Button
- android:id="@+id/btn_OK"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:onClick="onClick"
- android:text="OK"/>
- </LinearLayout>
- publicclassSecondActivityextendsActivity{
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.secondactivity);
- }
- }
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical">
- <Button
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:onClick="onClick"
- android:text="Displaysecondactivity"/>
- </LinearLayout>
- publicclassUsingIntentActivityextendsActivity{
- /**Calledwhentheactivityisfirstcreated.*/
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- }
- publicvoidonClick(Viewview){
- startActivity(newIntent("net.horsttnann.SecondActivity"));
- }
- }
Intent-Filter中的anction属性尽量使用反转域名,这样就能减少被其他使用相同action的程序启动的几率。
Intent-Filter中的category属性是android.intent.category.DEFAULT。只有添加了这个属性,这个Activity才能被另外一个Activity使用startActivity()方法来开启。
还有另外一种启动Activity的方法,但如果想使用这个方法,就必须确保这两个Activity在同一个工程下面。
- startActivity(newIntent(this,SecondActivity.class));
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- android 获取Bitmap 的两种方法
- Android的蓝牙实例代码中找不到REQUEST_ENABLE_BT
- Android自定义Toast样式和时间
- 读取联系人 2.0
- Android(安卓)windowSoftInputMode属性
- 基于Android的计算器(代码行数足够用来交大作业)
- android 获取一个apk的信息
- ExpandableListView小图标替换