2013-11-24 63 views
6

我使用爲我創建的LoginActivity.java在Android Studio 0.3.6中創建了一個全新的Android應用程序。當我查看onCreate功能我看到下面的代碼:代表匿名內部類的Android Studio

enter image description here

但是,當我點擊高亮(view)-> {代碼的Android Studio會顯示什麼,我沒有料想到會看到:

findViewById(R.id.sign_in_button).setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     attemptLogin(); 
    } 
}); 

我的問題

  1. 這是什麼叫?
  2. 爲什麼Android Studio會這樣做?
  3. 這是我可以利用的,因爲它少得多的打字?

回答

2

它做代碼摺疊類似於Java的 lambda表達式(見docs),即使你的代碼是不實際的Java編譯8;這只是一個更緊湊的顯示器的便利。

如果你想自己使用它們,你可以使用Android的工作室的Java 1.7的編譯語言,但你需要使用構建工具V19或更高版本,如果你使用特定的語言功能,它只能在Kit Kit或更高版本的手機上運行。 雖然,Lambda功能不會讓您陷入麻煩。

+6

實際上這是java 8的功能 – deviant

+1

具體來說,代碼摺疊下有一個名爲「Closures(實現一種方法的匿名類)」的設置,您可以啓用或禁用它。您也可以分別使用ctrl alt -/+手動摺疊/展開。不幸的是,我不知道你實際輸入簡寫版本的方式,AS自動生成完整的代碼,只是相反。 – JHH