2016-02-16 60 views
0

作爲一名血腥的android初學者,我正在嘗試將內聯類定義放入適當的類中。這裏是內嵌類的代碼段:如何取消內嵌內聯類?

imageView.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 
     // actual code here 
    } 
}); 

這裏是我試過,但給出了一個編譯器錯誤:

public class TestClass extends View.OnClickListener { 

    @Override 
    public void onClick(View arg0) { 
     // actual code here 
    } 
} 

錯誤消息:no interface expected here。我不知道這是什麼意思的文字...

那麼如何正確的非在線的在線類,這樣我可以在實際的代碼如下方式使用它:

imageView.setOnClickListener(new TestClass()); 
+0

Android和Java的初學者? –

+0

兩個都是血腥的初學者。不到10年的經驗!也許在10年內我知道基礎知識... – Alex

+0

我明白了..也許不那麼久!就個人而言,Java 2年,Android 1年。但是,這些「內聯」類被稱爲[匿名類](https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html),並且實現了''interface'](https ://docs.oracle.com/javase/tutorial/java/concepts/interface.html)和['extends'](https://docs.oracle.com/javase/tutorial/java/concepts/inheritance.html) a ['class'](https://docs.oracle.com/javase/tutorial/java/concepts/class.html) –

回答

3

有問題實施

在Java類必須是extend和接口必須implements

View.OnClickListener是一個接口,以便實現它。

Sample correct code

public class TestMe implements View.OnClickListener { 

    @Override 
    public void onClick(View arg0) { 
     // actual code here 
    } 
} 
+0

因爲'View.OnClickListener'是一個接口但不是類? – Alex