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

时间:2014-10-07 23:23:45

标签: java android

第一次实际发布一个我自己的问题,所以我希望我能做到这一点。

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

到目前为止,我已经完成了所有工作,列表完全按照预期进行扩展和折叠,只有当列表从" SessionDetails.java"实例化时才显示ImageViews。而不是从" Session.java"实例化时,而图标只显示应该有图标的那些切片。

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

我到目前为止所尝试的是传递实例化它的类的上下文(解析"这"),但因为它可以从" SessionDetails&#调用34;或者"会话"我不能使用它,因为上下文变量是在运行时确定的。

我还尝试设置自定义事件处理程序" 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.

            }
        });
    }
}

如果有人能告诉我应该怎么做,我会非常高兴。

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

提前感谢所有人。

0 个答案:

没有答案