本章節翻譯自《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。例如:
- <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>
- public class IntentsActivity extends Activity{
- /**Calledwhentheactivityisfirstcreated.*/
- @Override
- public void onCreate(BundlesavedInstanceState){
- super .onCreate(savedInstanceState);
- setContentView(R.layout.main);
- }
- public void onClickLaunchMyBrowser(Viewview){
- Intenti= new Intent( "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>
- public class MyBrowserActivity extends Activity{
- /**Calledwhentheactivityisfirstcreated.*/
- @Override
- public void onCreate(BundlesavedInstanceState){
- super .onCreate(savedInstanceState);
- setContentView(R.layout.browser);
- Uriurl=getIntent().getData();
- WebViewwebView=(WebView)findViewById(R.id.WebView01);
- webView.setWebViewClient( new Callback());
- webView.loadUrl(url.toString());
- }
- private class Callback extends WebViewClient{
- @Override
- public boolean shouldOverrideUrlLoading(WebViewview,Stringurl){
- return ( false );
- }
- }
- }
8. 點擊“Launch my Browser”按鈕,將會看到一個新的activity,并且顯示了Amazon.com網站的網頁。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
