从自定义按钮访问活动数据

时间:2014-02-20 06:59:20

标签: android button custom-controls

在我的Android活动中,我创建了我想要从动态创建的自定义按钮访问的成员。有机制这样做吗? 提前谢谢。

2 个答案:

答案 0 :(得分:0)

您可以创建界面:

interface SomeDataProvider {
    SomeData get();
}

您的活动(或活动成员)应实施此界面。然后,在自定义按钮类中,您将拥有以下内容:

public class CustomButton {
    private SomeDataProvider mDataProvider;

    public void setDataProvider(SomeDataProvider provider) {
        mDataProvider = provider;
    }
}

动态创建自定义按钮后,应调用setDataProvider()方法。但是在任何长时间的后台操作之后调用CustomButton #mDataProvider.get()方法是不安全的,因为托管活动可能会被破坏。

答案 1 :(得分:0)

根据您希望解决的问题,您可以:

  1. 将当前活动设置为Application对象(对onCreate,onResume执行此操作),并为每个自定义对象构造函数提供对Application的引用。

  2. 如果您要从活动中创建自定义按钮,则可以将活动作为参考传递,并确保您的成员拥有正确的getter / setter。