2011-12-17 10 views
0

私は知っている、同様の話題は何千も育った、しかし、私はそれらのいくつかを乗った。普遍的なホームボタンの方法

私は主なアクティビティを持っています。他のアクティビティがいくつかあります:B、C、Dといいます。B、C、DではgoHome()メソッドでこのボタンを取得しました。

このメソッドを1回書いてから、アクティビティB、C、Dで使用したいと思います。私は、各アクティビティクラスでメソッドをもう一度作成したくありません。それ、どうやったら出来るの?

答えて

2

子アクティビティ(ここではB、C、D)は、onActivityResult()を処理するクラスを拡張しますか?意図を開始するときは、startActivityForResult()を使用し、要求と応答コードを渡します。

これらのコードをonActivityResult()で受信すると、単純にfinish()になります。これにより、自動的に子アクティビティのユーザがアクティビティAに戻ります。

+1

@Xylianオブジェクト指向の設計は、これらの問題の多くへのソリューションを容易にします。オブジェクト指向技術を研究することをお勧めします。あなたは孤独なオオカミまたはチームメンバーです。 – styler1972

0

静的メソッドのみを含むクラスを作成できます。 あなたは、戻るボタンを押すか、新しいアクティビティを開始して、B、C、DからAに戻るかどうかは言いませんでした。 ただし、この静的メソッドをonBackPressedメソッドまたは "goHome()"メソッドに配置します。必要に応じて、インスタンスのコンテキストのために、静的メソッドにパラメータを渡すために

class B extends Activity{ 
    ... 

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

} 

class StaticCode{ 

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

} 

そしてB、C、Dに均等にそれを呼び出します。

+0

StaticCode.goHome()を直接使用しないのはなぜですか? – Floern

+0

@Floernあなたが好きなところでこのメソッドを呼び出すことができます:) – poitroae

関連する問題