使用嵌套接口在java / android中的两个类之间进行通信

时间:2013-02-25 02:51:37

标签: java android interface onclicklistener

任何人都可以告诉我,我是对还是错?我真的很难解决我的问题。

我拥有的是(或者我想做什么或正在思考的是:)

我有:

 Class B{

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

和:

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

这是B类和A类两个班级之间正确的沟通方式吗? 我该怎么做才能做到这一点。 我希望A类中的一些数据传递给B类以进行进一步的操作。

当我需要数据时,我应该如何制作我将在A中实现的方法? 在具有相同场景的界面上的一个简单示例将真正帮助我。 Doea有没有人对接口如何工作有一个很好的解释?或者它们应该如何使用?

我还想进一步询问android背后的接口工作背后的逻辑吗? 我们在OnClick Listeners中使用的回调方法背后的逻辑是什么? 因为这也是使用接口进行的? 例如:我们在课堂上实施它们

  class A implements View.OnClickListener

并提供我们班级中用于处理onClick事件的逻辑? 所以他们何时被召唤。(我知道当我们点击该特定视图时会调用它们) 我想要它们被称为

的机制或实现

或者我应该使用抽象类来做这件事? 我真的被卡住了! 谢谢你

3 个答案:

答案 0 :(得分:0)

您想要弄清楚的是Fragments之间的沟通。 Here它得到了很好的解释。如果您想在Activities之间进行通信,那么您应该阅读Intents

答案 1 :(得分:0)

我不完全确定我理解,但听起来你只需要实现一个DB类。为此,您可以找到许多好的示例,例如Here。在ActivityA中,您可以在AsyncTask中执行数据库操作,以便这些操作在后台完成,并且不会阻止您的UI线程。然后在AyncTask中使用单独的ActivityB来访问您的数据库类以检索信息

就使用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
    }
});
定义button1

后,在您的java代码中

无需查看代码并了解您的具体问题,这就是您可能正在寻找的内容。如果没有,请更具体地说明您想要什么,也许我们可以更好地帮助您

答案 2 :(得分:0)

接口用于定义Java中的一种行为。如果一个类实现了一个接口,它会向编译器保证它可以执行该接口中的所有方法。

例如,您可以使用Printable接口,其中包含可以打印的对象所需的方法(例如,getStringRepresentation方法)。任何实现Printable的类都必须实现其所有方法,因此您必须能够打印该类的对象。

您可以阅读有关接口here的更多信息。

如果你只想将数据从A类传递到B类,你不一定需要一个接口,因为你没有多个类可以做同样的事情,这就是您可能需要使用界面来定义它们的常见行为。

为什么不能使用B方法之一的参数将数据从A类传递给B类对象?

e.g。

// somewhere in the methods of A
B b = new B();
b.giveData(theData);