1

Activityクラスを拡張するクラスを使用するAndroidアプリケーションがあります。これをMyActivityと呼びましょう。そのクラスには、さまざまなことを処理するハンドラーがあります。これで、MyActivityクラスを拡張するアクティビティは、これらのものを拡張できるはずです。つまり、MyActivity以外のものを処理できる必要があります。

これが私が欲しいものの例です:

これは、ハンドラーを持つ変更されたActivityクラスです。

class MyActivity extends Activity {
    protected Hander myActivityHandler = new Handler()
    {
        @Override
        public void handleMessage(Message msg) {
            switch(msg.what)
            {
            case CASE_1:
                // do stuff
                break;
            case CASE_2:
                // do other stuff
                break;
            }
        }
    }
}

そして、これがそのクラスを拡張するクラスであり、ハンドラーにさらにケースを追加したいと思います。

class MySuperSpecialActivity extends MyActivity {
    // add/override cases of inherited myActivityHandler handler
}

それが可能かどうかはわかりませんが、おそらくこの機能を実現するためのより良い方法がありますが、それが私のコードを開始した方法であり、MyActivityクラスは頻繁に使用されるため必要でした。

4

1 に答える 1

4

アクティビティにHandler.Callbackを実装することを検討してください。

public class MainActivity extends Activity implements Handler.Callback {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Handler handler = new Handler(this);
    }

    @Override
    public boolean handleMessage(Message msg) {
        // Handle your message here
        return false;
    }    
}

このアクティビティから新しいアクティビティを継承し、「handleMessage」を上書きします。

public class AnotherActivity extends MainActivity {
    @Override
    public boolean handleMessage(Message msg) {
        super.handleMessage(msg);
        return super.handleMessage(msg);
    }

}   
于 2012-09-03T02:55:00.780 に答える