0

私が正しいか間違っているかを誰かに教えてもらえますか?私は自分の問題を解決するのに本当に混乱しています。

私が持っているのは(または私がやりたいこと、または考えていることです:)

私は持っている:

 Class B{

     ........
     ........
    interface I{
     ......
     ........
     }
   .......
   .......  
    } 

と :

  Class A implements B.I{
      ........
      .......
      B b= new B();
       }

クラス B とクラス A の 2 つのクラス間の正しい通信方法はありますか? どうすればこれを機能させることができますか。クラス A の一部のデータをクラス B に渡して、さらなる操作を行いたいと考えています。

データが必要なときに、A に実装するメソッドを B から呼び出すにはどうすればよいですか? 同じシナリオを持つインターフェイスの簡単な例は、本当に役に立ちます。インターフェースがどのように機能するかについて、誰かが良い説明をしていますか? またはどのように使用する必要がありますか?

また、android のインターフェイスの動作の背後にあるロジックについてもお聞きしたいと思います..? OnClick リスナーにあるコールバック メソッドの背後にあるロジックは何ですか? これもインターフェイスを使用して実行されるためですか?例:クラスにそれらを実装します

  class A implements View.OnClickListener

onClick イベントを処理するためのロジックをクラスに提供しますか? したがって、それらはいつ呼び出されますか.(その特定のビューをクリックすると呼び出されることはわかっています)それらがどのように呼び出されるかのメカニズムまたは実装が必要です

それとも、抽象クラスを使用してこれを行う必要がありますか? 私は本当に行き詰まっています!ありがとうございました

4

3 に答える 3

0

完全にはわかりませんが、DBクラスを実装するだけでよいようです。このために、 Hereのような多くの良い例を見つけることができます。では、 AsyncTaskActivityAでDB処理を実行して、これらの操作がバックグラウンドで実行され、スレッドを妨げないようにすることができます。次に、別のを使用してDBクラスにアクセスし、情報を取得しますUIAyncTaskActivityB

sを使用する限り、OnClickListenerこれはさまざまな方法で実行できます。それらを別のクラスで定義することもできますが、通常は、それらを利用するクラスで定義する方が簡単で効率的です。xmlで次のように定義できます。

<Button
android:id="@+id/btn1"
// button attributes
android:onClick=methodName/>

次に、Javaコードで

public void methodName(View v)
    {
     //do stuff here
    }

または次のようなものを使用します

   button1.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // do more stuff
    }
});

定義後のJavaコードでbutton1

コードを見たり、特定の質問を知らなくても、これはあなたが探しているように聞こえます。そうでない場合は、あなたが望むものについてより具体的にしてください、そして多分私たちはあなたをよりよく支援することができます

于 2013-02-25T03:51:18.337 に答える
0

あなたが理解しようとしているのは、 間の通信のようFragmentsです。ここはよく説明されています。間で通信したい場合Activitiesは、 について読む必要がありますIntents

于 2013-02-25T03:07:22.827 に答える
0

インターフェースは、Java での動作のタイプを定義するためのものです。クラスがインターフェイスを実装する場合、そのインターフェイスのすべてのメソッドを実行できることをコンパイラーに保証します。

たとえば、印刷可能なオブジェクトに必要なメソッド (getStringRepresentation メソッドなど) を備えた Printable インターフェースを持つことができます。Printable を実装するすべてのクラスは、そのすべてのメソッドを実装する必要があるため、そのクラスのオブジェクトを印刷できる必要があります。

インターフェイスの詳細については、こちらをご覧ください。

クラスAからクラスBにデータを渡したいだけの場合、同じことを実行できる複数のクラスがないため、必ずしもインターフェイスは必要ありません.インターフェイス。

B のメソッドの 1 つのパラメーターを使用して、クラス A からクラス B のオブジェクトにデータを渡すことができないのはなぜですか?

例えば

// somewhere in the methods of A
B b = new B();
b.giveData(theData);
于 2013-02-25T07:26:30.667 に答える