2011-12-22 8 views
0

私は私の活動を表すクラスを持っているとオブジェクトからアクティビティを終了()することはできますか?

public class main extends Activity{ 
    //Does stuff 
    } 

    public class Object{ 
    //I want to call finish() here 
    } 

ように見えるオブジェクトは、それをする方法はありますか?

+1

あなたのデザインが少し奇妙です。オブジェクトはどのように信号を通過させますか?静的なフィールドに?アクティビティと関係のないオブジェクトがそれを終了しようとしているのはなぜですか? –

答えて

1

Objectに、Activityパラメーターを受け入れるコンストラクターを作成させ、Objectクラスをインスタンス化するときにアクティビティインスタンスを渡すことができます。

例:

class MyObject { 
    private Activity act; 
    public Object(Activity act) { this.act = act;} 

    public doStuff() { 
     // do stuff 
     act.finish(); 
    } 
} 

//usage in some code inside your activity: 
MyObject obj = new MyObject(this); 
obj->doStuff(); 
+0

私はこのアクティビティでこのオブジェクトを使用しないため、難しくなる可能性があります。これを解決する最も簡単な方法は、whileループとifステートメントを使って、オブジェクトがbooleanフラグを使って信号を送信するときにのみfinishを呼び出すことです。私はもっ​​と良い選択肢があると思っていた。 – eBehbahani

+0

あなたのデザインはちょっと奇妙です。オブジェクトはどのように信号を通過させますか?静的なフィールドに?アクティビティと関係のないオブジェクトがそれを終了しようとしているのはなぜですか?オブジェクトがアクティビティの内部にある場合、オブジェクト内から 'main.this.finish();'を呼び出すことができます。 –

+0

@トミスラフ:第1および第2の質問:信号を送る必要はありません。 3番目の質問:それはOPに尋ねる質問です。 4番目:Objectがアクティビティの内部クラスの場合、それはOPが示したものではありません。 – JRL

関連する問題