2013-11-24 64 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