在Android中实现多个界面时,“this”关键字

时间:2014-06-16 04:43:34

标签: java android this android-button

我知道this关键字是对当前对象的引用,但我在Android应用程序中实现多个接口时感到困惑。

实施例。我像这样创建新的Button

public class Example extends Activity implements View.OnClickListener, View.OnTouchListener {

@Override
...
// override OnClick and OnTouch

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // 'this' refer to context in Activity
    Button button = new Button(this);

    // 'this' refer to OnClickListener
    button.setOnClickListener(this);

    // 'this' refer to OnTouchListener
    button.setOnTouchListener(this);
}

}

程序如何知道要引用的对象?

在创建新的Button而不是OnClickListener时,程序如何知道必须将Activity中的上下文作为参数传递?

感谢。

2 个答案:

答案 0 :(得分:2)

this指的是您的Example

关于你在这里所写的内容:

// 'this' refer to context in Activity
Button button = new Button(this);

// 'this' refer to OnClickListener
button.setOnClickListener(this);

// 'this' refer to OnTouchListener
button.setOnTouchListener(this);

实际上,它们都是指Example,其中 ActivityOnClickListenerOnTouchListener

答案 1 :(得分:1)

扩展类,实现接口是面向对象编程的主要部分。假设您有一个名为Car的类,以及几个接口,Accelerate,Brake,Steer。当Car实现这些接口时,意味着它可以执行这些操作。然后你可以说myCar.brake();或myCar.steer(“left”);或myCar.accelerate(10);.您可以将myCar更改为thisCar,或者只是将其更改为,因为所有这些汽车都有相同的行为。

Oracle拥有它的真正大指数,而且由于Android基于Java,因此它是相当不错的参考点。 http://docs.oracle.com/javase/tutorial/reallybigindex.html