正確に何を達成しようとしていますか?一部の変数またはレイアウトの一部を除いて、共通の UI を持つ 2 つの異なるアクティビティがありますか?
この場合、ベースとなる抽象アクティビティと、継承された 2 つの具体的なサブクラスを用意することをお勧めします。基本アクティビティですべての一般的な動作を定義し、違いに対する抽象メソッドを用意して、実際の実装でオーバーライドします。
たとえば、レイアウト リソースが異なる 2 つのアクティビティの場合:
public abstract class BaseActivity extends Activity {
@Override
public void onCreate(bundle) {
super.onCreate(bundle);
setContentView(getLayoutResourceId());
}
protected abstract int getLayoutResourceId();
}
public class Activity1 extends BaseActivity {
@Override
public void onCreate(bundle) {
super.onCreate(bundle);
// do extra stuff on your resources, using findViewById on your layout_for_activity1
}
@Override
protected int getLayoutResourceId() {
return R.layout.layout_for_activity1;
}
}
サブクラスに固有の必要なすべてのビットに対して、より多くの抽象メソッドを使用できます。
私の意見では、それを行うことは、具体的なサブクラスを具体的なスーパークラスにするよりもはるかに優れています。これは、多くの問題を引き起こす可能性があり、通常はデバッグが困難です。