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

クラス宣言では、またはのいずれかが見つかりextendsますimplements OnClickListener。これは、クラスを として使用できることを意味しますOnClickListener(とりわけ 1 つであるため)。そのため、ここでこれを使用できます。

于 2012-09-11T14:52:30.823 に答える