【发布时间】:2013-12-26 06:34:31
【问题描述】:
我是编程新手,我对 android 有非常基本的了解。正如我在 Java 中了解到的,无法实例化接口并且 new 是 Java 中的关键字,表示创建实例。我在 Android 中遇到了以下代码:
public class MyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayout);
findViewById(R.id.button1).setOnClickListener(mButton1_OnClickListener);
}
//On click listener for button1
final OnClickListener mButton1_OnClickListener = new OnClickListener() {
public void onClick(final View v) {
//Inform the user the button has been clicked
Toast.makeText(this, "Button1 clicked.", Toast.LENGTH_SHORT).show();
}
};
}
上面的代码OnClickListener是一个公共接口,onClick(final View v)是一个抽象方法,我的问题是:OnClickListener是一个接口,如何使用new关键字创建它的实例上面的例子?
【问题讨论】:
-
或者您可以将这个
interface继承给class = Activity并使其表现得像OnClickhanler。 -
我没听明白,你能说得清楚点吗?
-
interface给出一个行为给谁继承它。这样你就可以决定你的活动是否可以给interface一个click behavior。 -
那么上面的代码会如下所示 public class MyActivity extends Activity implements OnClickListener { public void onClick(final View v) { //通知用户按钮被点击 Toast.makeText( this, "Button1 clicked.", Toast.LENGTH_SHORT).show(); }}。我说的对吗?