【Android(安卓)开发教程】使用Intent-Filter
16lz
2021-01-25
本章节翻译自《Beginning-Android-4-Application-Development》,如有翻译不当的地方,敬请指出。
原书购买地址http://www.amazon.com/Beginning-Android-4-Application-Development/dp/1118199545/我们已经知道,一个activity通过使用Intent对象调用另外一个activity。为了能让其他activity做出回应,还需要在AndroidManifest.xml中配置<intent-filter>元素,同时指定action和category。例如:
[java] view plain copy- <intent-filter>
- <actionandroid:name="com.manoel.SecondActivity"/>
- <categoryandroid:name="android.intent.category.DEFAULT"/>
- </intent-filter>
1. 新建一个工程,创建一个类:MyBrowserActivity.java。同时在res/layout中创建一个xml文件:brwoser.xml。
2. AndroidManifest.xml
- <?xmlversion="1.0"encoding="utf-8"?>
- <manifestxmlns:android="http://schemas.android.com/apk/res/android"
- package="com.manoel.Intents"
- android:versionCode="1"
- android:versionName="1.0">
- <uses-sdkandroid:minSdkVersion="14"/>
- <uses-permissionandroid:name="android.permission.CALL_PHONE"/>
- <uses-permissionandroid:name="android.permission.INTERNET"/>
- <application
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name">
- <activity
- android:label="@string/app_name"
- android:name=".IntentsActivity">
- <intent-filter>
- <actionandroid:name="android.intent.action.MAIN"/>
- <categoryandroid:name="android.intent.category.LAUNCHER"/>
- </intent-filter>
- </activity>
- <activityandroid:name=".MyBrowserActivity"
- android:label="@string/app_name">
- <intent-filter>
- <actionandroid:name="android.intent.action.VIEW"/>
- <actionandroid:name="com.manoel.MyBrowser"/>
- <categoryandroid:name="android.intent.category.DEFAULT"/>
- <dataandroid:scheme="http"/>
- </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">
- <Button
- android:id="@+id/btn_launchMyBrowser"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:onClick="onClickLaunchMyBrowser"
- android:text="LaunchMyBrowser"/>
- </LinearLayout>
- publicclassIntentsActivityextendsActivity{
- /**Calledwhentheactivityisfirstcreated.*/
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- }
- publicvoidonClickLaunchMyBrowser(Viewview){
- Intenti=newIntent("com.manoel.MyBrowser");
- i.setData(Uri.parse("http://www.amazon.com"));
- startActivity(i);
- }
- }
- <?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">
- <WebView
- android:id="@+id/WebView01"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
- </LinearLayout>
- publicclassMyBrowserActivityextendsActivity{
- /**Calledwhentheactivityisfirstcreated.*/
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.browser);
- Uriurl=getIntent().getData();
- WebViewwebView=(WebView)findViewById(R.id.WebView01);
- webView.setWebViewClient(newCallback());
- webView.loadUrl(url.toString());
- }
- privateclassCallbackextendsWebViewClient{
- @Override
- publicbooleanshouldOverrideUrlLoading(WebViewview,Stringurl){
- return(false);
- }
- }
- }
8. 点击“Launch my Browser”按钮,将会看到一个新的activity,并且显示了Amazon.com网站的网页。
更多相关文章
- android webView 使用方法
- 【Android(安卓)开发教程】TableLayout表格布局
- Android学习笔记2012年(上)
- android 显示单选列表对话框 builder.setSingleChoiceItems
- Activity四种启动模式
- Android之FloatingActionButton使用
- Android(安卓)应用语言设置的实现
- Android(安卓)颜色渲染(十) ComposeShader组合渲染
- 安卓应用的界面编程(2)