2011-12-17 84 views
0

我知道,类似的话题被提出了上千次,但我骑它们中的一些。通用主页按钮方法

我的主要活动A.我有几个其他的活动,可以说:B,C,D在B,C,d我得到这个按钮,GOHOME()方法。

我想一次写该方法,然后用它在活动B,C,d。我不想在每个活动类上重新创建方法。我怎么做?

回答

2

让孩子活动(在这里B,C,d)延长,处理onActivityResult()类。当开始他们的意图时,使用startActivityForResult(),并传递一个请求和响应代码。

当这些代码由onActivityResult()接收,简单地具有它finish()。这会自动将禁止任何儿童活动的用户返回到活动A.

+1

@Xylian面向对象的设计有利于解决这些问题很多。我会建议研究面向对象技术,因为它们会使你成为一个更有效的和有组织的编码器,不管你是一个孤独的狼或一个团队成员。 – styler1972 2011-12-19 16:12:00

0

您可以创建一个只包含静态方法的类。 您没有说过,如果您通过按下后退按钮或开始新的活动从B,C,D返回A。 但是,将此静态方法放在onBackPressed方法中或放在“goHome()”方法中。

class StaticCode{ 

    static void goHome(){ 
    // the things generally done in B.goHome(), C.goHome(), D.goHome(); 
    } 

} 

然后均匀地调用它在B,C,d:

class B extends Activity{ 
    ... 

public void goHome(){ 
    StaticCode.goHome(); 
} 

} 

注意将参数传递到所需的静态方法,例如上下文。

+0

为什么不'StaticCode.goHome()'直接? – Floern 2011-12-17 13:50:25

+0

@Floern你可以调用这个方法不管你喜欢:) – poitroae 2011-12-17 13:51:15