我包含了库 Swipeable-Cards在我的安卓项目中。在 MainActvitiy.java 中,onCreate 方法包含类似的内容:
SimpleCardStackAdapter adapter = new SimpleCardStackAdapter(this);
//This should also be done on an event in the library class:
adapter.add(new CardModel("Title2", "Description2 goes here", r.getDrawable(R.drawable.picture2)));
现在,在 CardContainer.java(属于可刷卡库)中有一个事件,我想在该事件上将新项目添加到适配器adapter.add(...)
。如上所示,适配器在 MainActvitiy.java 中定义。
我怎样才能做到这一点?
我首先考虑在 MainActivity 中定义一个新方法,然后从我的库类中调用它,就像这样:
public void callfromlibrary() {
adapter.add(...);
}
但是方法和适配器需要定义为静态的,另外我不知道如何使 MainActivity 的这个方法在 CardContainer.java 中可用。
我相信我需要创建一种监听器来检查 MainActivity 在 CardContainer.java 中发生了什么?我不知道该怎么做。
感谢任何帮助!
最佳答案
允许CardContainer
沟通到 MainActivity
, 你在 CardContainer
中定义了一个接口(interface)并在 MainActivity
中实现.当事件发生在 CardContainer
, 然后它可以调用接口(interface)方法以添加 CardModel
到适配器。
public class CardContainer extends ... {
CardContainerEventListener mCallback;
// Define a interface
public interface CardContainerEventListener {
public void addToAdapter();
}
// Method to register callback
void registerCallback(Activity callback) {
mCallback = (CardContainerEventListener) callback;
}
void someFunction() {
// Event got generated, invoke callback method
mCallback.addToAdapter();
}
}
public class MainActivity extends Activity implements CardContainer.CardContainerEventListener {
// Ensure you register MainActivity with CardContainer, by calling
// cardContainer.registerCallback(this)
public void addToAdapter() {
adapter.add(...);
}
}
关于java - 在库文件中发生事件时调用 MainActivity.java 中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25080952/