Android/Java从实例化当前类的活动调用函数

Android/Java从实例化当前类的活动调用函数,java,android,Java,Android,我第一次发帖问自己,所以我希望我做得对 在我的Android应用程序中,我有一个名为“SessionDetails.java”的活动。在这个类中,我调用了一个自定义类(“CustomExpandableView.java”),它为我创建了一个自定义的可扩展列表布局。它通过创建类“ParentSlice.java”的不同实例,然后为每个ParentSlice创建类“ChildSlice.java”的不同实例来实现这一点。ChildSlices上都有一些文本数据,但也有一些有一个ImageView

我第一次发帖问自己,所以我希望我做得对

在我的Android应用程序中,我有一个名为“SessionDetails.java”的活动。在这个类中,我调用了一个自定义类(“CustomExpandableView.java”),它为我创建了一个自定义的可扩展列表布局。它通过创建类“ParentSlice.java”的不同实例,然后为每个ParentSlice创建类“ChildSlice.java”的不同实例来实现这一点。ChildSlices上都有一些文本数据,但也有一些有一个ImageView

到目前为止,我一切都很好,列表按预期的方式展开和折叠,只有当列表从“SessionDetails.java”实例化时,图像视图才会显示,而从“Session.java”实例化时,图像视图不会显示,而图标只显示在那些应该有图标的切片上

然而,我想要实现的是,当按下ChildSlice上的按钮时,SessionDetails原始活动中的某些内容会发生变化

到目前为止,我尝试传递实例化它的类的上下文(解析“this”),但由于它可以从“SessionDetails”或“Session”调用,所以我不能使用this,因为上下文变量是在运行时确定的

我还尝试设置自定义事件处理程序“OnPlotRequestListener”,但我在这方面遇到了困难,无法理解如何触发自定义事件等

所以基本上我的问题是:如何从实例化当前类的类调用函数/方法?我可以通过标准的OnClick方法来完成吗?如果是,怎么办

简单的例子:

Public Class A extends Activity
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_session_details_screen);

        B myB = new B(this);
    }

    public void doStuffToActivity()
    {    }
}

Public Class B 
{
    public B(Context context)
    {
        ImageView icon = new ImageView(context)
        icon.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v)
            {   
                 //HERE IS WHERE I WANT TO CALL THE FUNCTION OF THE ACTIVITY.

                 //This does not work.
                 context.doStuffToActivity(); 

                 //Making a static method in A wont work, because then i can't alter, for example, a TextView on the activity.

                 //I've tried to create my own event handler, but couldn't figure it out.

            }
        });
    }
}
如果有人能告诉我该怎么做,我会很高兴的

根据要求,我可以发布一些代码,但我认为这只会让人困惑


提前感谢大家。

上下文
选为活动类。哇。嗯,我现在觉得自己非常愚蠢。非常感谢您的回答。您可以在创建时将父类中实现的接口传递给子类。并通过子对象中的接口从父对象调用方法。