Android之路:回撥的入門理解(CallBack)
阿新 • • 發佈:2019-02-17
這裡我會用最簡單的例子來介紹Android中的回撥。
例子:我會定義一個輸入框,如果輸入的數字大於10,我會輸出“大於10”,否則輸出“小於或者等於10”。看具體的程式碼怎麼用回撥來實現這個功能。
1.定義一個普通介面A,裡面 定義兩個方法。
interface A{
void success();
void fail();
}
2.我再定義一個B類,裡面寫一個方法,來判斷輸入的數字是否大於10.這裡傳入兩個引數,這個num就是你要輸入的數字,如果大於10,我們就呼叫A介面的success()方法,否則呼叫fail()方法,因為要呼叫success()和fail()方法,所以我才在引數中引入A介面。
class B{ public isThanTen(int num,A a){ if(num>10) {a.success();} else {a.fail()} } }
3.在Activity中呼叫B類中的isThanTen()方法.我這裡提出部分程式碼,這裡num你可以輸入從EditTextView裡面獲取的數值。 另一個引數因為是A介面型別,所以我們new出來,既然是new的所以我們就必須要實現A介面的success()和fail()方法。在下面兩個方法列印兩個輸出語句。
4:我們執行Activity,如果輸入11,則會列印”大於10“,輸入9會列印”小於10“。為什麼會是這樣呢?當我們呼叫isThanTen()這個方法的時候,就會去B類判斷是否大於10,如果大於10,則執行success()方法,而success()方法又在Activity中實現,所以就會執行你寫的”System.out.println("大於10");小於10也是同理。B b=new B(); b.isThanTen(num, new A() { @Override public void success() { System.out.println("大於10"); } @Override public void fail() { System.out.println("小於10"); } });