2017-07-15 17 views
-1

由於Java中不允許創建接口的對象。 通過按鈕事件創建代碼一起去,我通過這個決議:Android視圖。 onClickListener是一個接口。 JAVA如何允許創建它的對象?

 View. OnClickListener ocl=new View. OnClickListener(); 

按照Android文檔onClickListener是一個接口,那麼我們如何創造它的對象。對象創建的接口是不允許的,但關鍵字new顯然是這樣做的。這怎麼可能? 請原諒我的錯誤,我是Android開發新手。

+0

選中此項 - http://blog.cubeactive.com/onclicklistener-android-tutorial/ –

+0

實際上,我們創建了一個實現OnClickListener的子類的對象並覆蓋了它的方法。 –

回答

0

你不知道。系統確實如此。您只需提供接口的實現。

+0

按照JAVA,您不能創建接口的對象。那麼這怎麼會發生/允許 - 新視圖。 OnClickListener()[創建對象] – sociopath

0

如果你想寫一個ClickListener使用幾個視圖的單擊事件中,試試這個:

View.OnClickListener onClick = new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      // write your code here 
     } 
    }; 

現在,您可以設置onClick到您的視圖的ClickListener

btn.setOnClickListener(onclick); 
0

每當接口是需要的,你需要提供這個接口的實現。這意味着需要接口的類不關心實現的類,只需知道它可以以特定的方式使用它所接收的實例,並且實例可以實現通過其實現所要求的內容。

然後,您有兩個選項創建一個實現View.OnClickListener接口的類或實例化一個匿名類。

選項1:

public class ClickListenerImpl implements View.OnClickListener 
{ 
    @Override 
    public void onClick(View view) { /* logic */ } 
} 

然後

View.OnClickListener ocl = new ClickListenerImpl(); 

選項2:

View.OnClickListener ocl = new View.OnClickListener() 
{ 
    @Override 
    public void onClick(View view) { /* logic */ } 
}; 
1

在簡單的話..

您創建的實例爲anonymous類,該類在方括號中實現了View.OnClickListener

相關問題