1
public class Activity01 extends Activity implements OnClickListener,
        ViewFactory {
        ...
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            LinearLayout main_view = new LinearLayout(this);
            m_Switcher = new ImageSwitcher(this);
            main_view.addView(m_Switcher);
            m_Switcher.setId(SWITCHER_ID);
            m_Switcher.setFactory(this);
            m_Switcher.setOnClickListener(this);
            setContentView(main_view);
            ...
        }

        public void onClick(View v) {
            ...
        }
    }

上面的代码来自一个Android项目,下面函数的参数设置为'this',为什么?

m_Switcher.setOnClickListener(this);

根据javadoc,这里应该如下所示:

public void setOnClickListener (View.OnClickListener l)

这意味着参数应该是这样的:View.OnClickListener

那么为什么“这个”会在那里呢?谢谢!

注意:根据答案,我在上面给出了更完整的代码。

4

1 回答 1

7

在类声明中,您将找到它extendsimplements OnClickListener。这意味着该类可以用作一个OnClickListener(因为它是其中之一)。这就是为什么你可以在这里使用

于 2012-09-11T14:52:30.823 回答