gpt4 book ai didi

java - 在库文件中发生事件时调用 MainActivity.java 中的方法

转载 作者:行者123 更新时间:2023-11-29 07:01:38 25 4
gpt4 key购买 nike

我包含了库 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com