C# yield在WCF中的毛病用法(一)。本站提示廣大學習愛好者:(C# yield在WCF中的毛病用法(一))文章只能為提供參考,不一定能成為您想要的結果。以下是C# yield在WCF中的毛病用法(一)正文
1、簡介
Android運用法式中普通都有多個Activity,在Activity中,經由過程挪用StartActivity辦法,並在該辦法的參數中傳遞Intent對象,便可以完成分歧Activity之間的切換和數據傳遞。
經由過程StartActivity辦法傳遞intent對象來啟動另外一個Activity時,可分為兩類:
l 顯式啟動:在創立的Intent對象中明白指定啟動的是哪一個Activity;
l 隱式啟動:安卓體系依據Intent的舉措和數據決議應當啟動哪一個Activity。
1、顯式啟動Activity
經由過程Intent顯式啟動一個Activity時,必需先創立一個Intent對象,並在該對象的結構函數中指明要啟動的目的組件名。例如:
var intent = new Intent(this, typeof(Activity1)); StartActivity(intent);
在這類情形下,除intent對象之外,沒有其他方法可以婚配組件名。
2、隱式啟動Activity
隱式啟動Activity是指Android體系依據過濾規矩主動去婚配對應的Intent,即不須要在Intent對象中明白指明啟動的是哪一個Activity,而是讓Android體系來決議應當啟動誰。在這類情形下,Android體系會主動婚配最合適處置intent的一個或多個Activity。婚配的Activity能夠是運用法式本身的,也能夠是Android體系內置的,還能夠是第3方運用法式供給的。是以,隱式啟動這類方法更強調了Android運用法式中組件的復用性。
留意,假如願望讓你的法式經由過程Activity展現某些舉措,例如打德律風、發郵件、發短信,或許應用activity中的數據等。這時候候,起首斟酌挪用體系供給的功效去完成(即:隱式啟動Activity的方法)。在這類情形下,只須要經由過程Intent指定響應的舉措便可,這是intent真正表現其價值的處所。例如:
var call = new Intent(Intent.ActionCall); //初始化一個德律風呼喚 call.SetData(Android.Net.Uri.Parse("tel:13811112222")); StartActivity(call);
上面是經常使用的一些舉措常量:
留意:用C#表現這些舉措常量時,鍵入“Intent.”然後選擇一個常量便可。這些可選擇的常量去失落了分隔單詞的下劃線,並將每一個單詞的首字母改成年夜寫,其他字母改成小寫,例如:Intent.ActionCall。
除指定響應的舉措之外,還可以同時指定Uri,這類情形下,Android會挪用內置的閱讀器來隱式啟動一個Activity。例如:
Intent intent=new Intent(Intent.ActionView, Uri.Parse("http://www.谷歌.com");
StartActivity(intent);
3、封閉Activity
挪用Finish()可終止activity。也能夠挪用FinishActivity() 來終止你之前啟動了的一個自力的activity。
記住:顯式封閉Activity僅用於你相對不想讓用戶再前往這個activity的實例的情形。多半情形下,都不該該顯式挪用Finish()或許FinishActivity()來封閉acitivity,而是應當讓體系為你去治理它。 2、示例—ch1201IntentDemo
該例子演示若何經由過程Intent撥打德律風,和若何啟動另外一個Activity。
本例子須要運用法式具有“CALL_PHONE”權限。
1、運轉截圖
運轉前先在模仿器中添加一些接洽人及其德律風號碼(模仿器自己有這個功效,直接在模仿器中操作便可),然後再測試要撥出的號碼。
上面左圖是該例子的主界面,右圖是單擊【打德律風】按鈕後,在第2個界面中撥出的德律風號碼截圖。
下圖是單擊【轉到運動1】按鈕後的運轉截圖。
2、重要設計步調
(1)添加“CALL_PHONE”權限
在【處理計劃資本治理器】中,鼠標雙擊項目標【Properties】進入上面的界面,然後勾選“CALL_PHONE”選項:
設置後,體系就會主動在AndroidManifest.xml中添加上面的代碼:
<uses-permission android:name="android.permission.CALL_PHONE" />
(2)添加ch1201_Main.axml
在Resources\layout文件夾下添加該文件,模板選擇【Layout】:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:id="@+id/btn1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="打德律風" /> <Button android:id="@+id/btn2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="轉到運動1" /> </LinearLayout>
(3)添加ch1201_Layout1.axml
在Resources\layout文件夾下添加該文件,模板選擇【Layout】:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:text="這是運動1的界面\n\n提醒:按【Back】按鈕前往" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView1" android:layout_gravity="center" android:layout_margin="30dp" /> </LinearLayout>
(4)添加ch1201IntentDemoMain.cs
在SrcDemos文件夾下添加該文件,模板選擇【Activity】:
using Android.App; using Android.Content; using Android.OS; using Android.Widget; namespace MyDemos.SrcDemos { [Activity(Label = "【例12-1】Intent根本用法1")] public class ch1201IntentDemoMain : Activity { protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.ch1201_Main); //啟動德律風撥號的Activity FindViewById<Button>(Resource.Id.btn1).Click += delegate { var call = new Intent(Intent.ActionCall); call.SetData(Android.Net.Uri.Parse("tel:13811112222")); StartActivity(call); }; //啟動自界說的Activity FindViewById<Button>(Resource.Id.btn2).Click += delegate { var intent = new Intent(this, typeof(ch1201IntentDemoActivity1)); StartActivity(intent); }; } } }
(5)添加ch1201IntentDemoActivity1.cs
在SrcDemos文件夾下添加該文件,模板選擇【Activity】:
using Android.App; using Android.OS; namespace MyDemos.SrcDemos { [Activity(Label = "【例12-1】Intent根本用法1")] public class ch1201IntentDemoActivity1 : Activity { protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.ch1201_Layout1); } } }
以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。