0

Object からのみ継承されるクラスにOnClickListenerを実装しようとしています。ビューもアクティビティもありません..しかし、どういうわけか、何かが欠けていて、正しく機能しません。これが私が持っているものです。

class myActivity extends activity
{
    //variables and methods...

    private class testA implements OnClickListener
    {
        public testA()
        {
            setOnClickListener(this);
        }

        @Override
        public void onClick(View v) {
            //do something
        }
    }
}

構造はそれです。これは、testA クラスのインスタンスが 1 つしかない場合にうまく機能します。複数のインスタンスがある場合、アクティビティ内のいずれかのインスタンスをクリックすると、最後に作成されたクラスがクリック イベントを受け取ります。すべてのインスタンスがクリック イベントを受け取りますが、onClick 関数のロジックは最後のインスタンスにのみ適用されます。ここで正しい参照が欠落していると思います。

testAコンストラクターのsetOnClickListenerはmyActivityクラスを参照し、これは testA クラス インスタンスを参照します。次のインスタンスのsetOnClickListenerを呼び出すとが最後に作成されたtestAクラスに変更されることに気付きました。これを回避する方法がわかりませんでした。おそらくsetOnClickListenerの代わりに、 addOnClickListenerがうまくいくかもしれません。

誰でもこれについて考えていますか?作成されたすべてのオブジェクトがクリックイベントを適切に受け取るようにするにはどうすればよいですか?

私の問題が何であるかを述べることができれば幸いです..ありがとう...

4

1 に答える 1