3

Activity クラスがあり、内部にはいくつかのメソッドがあります。そして、解放したい重要な変数があるため、onBackPressed()内部に実装したいと思います。method2この変数をより大きなスコープで作成することはできません/作成できません。また、メソッド 2 内でこの変数を解放することもできません。これは、戻るボタンを押してアプリケーションとメソッド 2 の実行を終了したいためです。

public  class example extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        method1();
    }

    public method 1 {
        //take some input and assign in a variable.
        method2(variable); 
    }

    public method2 {
        // do something with the variable that take before at method 1
        // and finally press back button
        onBackPressed(){}
        //free variable , finish ();
    }
}   

ご存知のonBackPressed()ように、アクティビティ領域でのみメソッドの内側をオーバーライドすることはできません。これに対する解決策を教えてください。

4

1 に答える 1

5

アクティビティ スコープでメソッドをオーバーライドし、onBackPressed()メソッドから呼び出す必要があります。

@Override
public void onBackPressed()
{
    super.onBackPressed();
    // Do your things.
}

public void method()
{
    onBackPressed();
}

メソッドに複雑なロジックを追加する場合はonBackPressed、パラメーターを使用して別のロジックを作成するだけです。

public void myOnBackPressed(int param1, String param2)
{
    // Do your complex logic.
    onBackPressed();
}

public void method()
{
    myOnBackPressed(myInt, myString);
}
于 2012-09-05T09:06:34.203 に答える