AndroidManifest.xml:
這樣就可以監聽到所有ACTIVITY的生命周期 不用再一個一個寫
var number: Int
Int
)指的是沒有小數點的數字,可以有符號 (正、負、零)或是無符號 (正、零)。Float
、Double
)指的是有包含小數點的數字,Float
跟Double
的差別在於精確度,Float
有 6 位數,而Double
可以達到 15 位數,選擇使用哪一個則是看你程式需要處理值的範圍而定// 型別為整數 Int
let number1 = 3
// 型別為浮點數 Double
let number2 = 0.1415926
// 相加前 需要將 Int 轉換成 Double 否則會報錯誤
let pi = Double(number1) + number2
布林值
布林值(bool
)指的是邏輯上的值,只能為真或假。在後續的學習中會使用到這個特性,依據一個條件式(像是數字比大小或兩數是否相等)會返回真或假,進而使用不同的程式碼。 Swift 有兩個布林常數:true
跟false
元組
元組(tuple
)是將多個值組合成一個複合值,其內的型別可以不同,以一對小括號()
前後包起來,每個值以逗號
// 宣告一個元組並填值進去 依序是字串、整數、浮點數
let myInfo = ("Jack", 25, 178.25)
可選型別
這是 Swift 的一個特性,讓變數或常數可以有沒有值的情況,這與零0
或是空字串""
不同,當沒有值時,變數或常數會返回nil
。而nil
代表的就是沒有值,任何型別只要有加上可選型別(optional type
)都可以設置成nil
。使用方法為在型別標註後面加上一個問號?
// 在宣告變數時 型別標註後面加上一個問號 ?
var someScore: Int?
// 因為目前尚未指派 所以目前 score 會被設置成 nil
// 也就是沒有值的狀態
// 設值為 100
someScore = 100
// 再將變數設為 nil 目前又是沒有值的狀態
someScore = nil
// 但如果沒有加上 ? 則是尚未指派的狀態 這時如果直接使用會報錯誤
var totalScore: Int
// 也不能設成 nil 這行同樣也會報錯誤
//totalScore = nil
// 宣告常數也是一樣 在型別標註後面加上一個問號 ?
let someName: String?
Facebook Activity
- 請將本項目加至 AndroidManifest.xml
<provider android:authorities="com.facebook.app.FacebookContentProvider{APP_ID}" android:name="com.facebook.FacebookContentProvider" android:exported="true"/>
ShareDialog
,請在 ShareDialog
方法中建立 onCreate
實例public class MainActivity extends Activity { CallbackManager callbackManager; ShareDialog shareDialog; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FacebookSdk.sdkInitialize(getApplicationContext()); callbackManager = CallbackManager.Factory.create(); shareDialog = new ShareDialog(this); // this part is optional shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() { ... }); }然後顯示 ShareDialog:
if (ShareDialog.canShow(ShareLinkContent.class)) { ShareLinkContent linkContent = new ShareLinkContent.Builder() .setContentTitle("Hello Facebook") .setContentDescription( "The 'Hello Facebook' sample showcases simple Facebook integration") .setContentUrl(Uri.parse("http://developers.facebook.com/android")) .build(); shareDialog.show(linkContent); }
callbackManager
中呼叫 SDK 的 onActivityResult
以處理回應:@Override protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) { super.onActivityResult(requestCode, resultCode, data); callbackManager.onActivityResult(requestCode, resultCode, data); }
String js = "javascript:" + "scan(\"" + contents + "\")";Log.d(TAG, "onActivityResult " + js);mWebView.loadUrl(js);
type annotation
),說明這個值的型別(像是整數、字串)。使用方法是在值的後面加上冒號:
接著加上型別名稱