同様のアクティビティを10回実行する必要がある場合は、次のように実行する方がよいでしょうか。
- 10のアクティビティと10のレイアウト?
- 1つのアクティビティと10のレイアウト?
- 1つのアクティビティと可視性がなくなった/見えるようにUIを変更しますか?
答えが必要です:
- パフォーマンス
- 形式
同様のアクティビティを10回実行する必要がある場合は、次のように実行する方がよいでしょうか。
答えが必要です:
複数のアクティビティを使用する場合は、Androidアクティビティスタックメカニズムを使用する利点があります。したがって、ユーザーが戻るボタンでナビゲートできるようにする場合は、それが最善の策です。
また、アクティビティが非常に似ている場合は、抽象クラスに共通コードを実装し、10個のアクティビティでこの共通クラスを拡張して、コードを共有することができます。
public abstract class CommonBehaviorActivity extends Activity {
protected void buildCommonThings() {
((TextView)findViewById(R.id.title)).setText(getTitle());
((ImageView)findViewById(R.id.image)).setDrawable(...);
}
abstract protected String getTitle();
}
public class MyActivity1 extends CommonBehaviorActivity {
...
protected String getTitle() {
return "Title 1";
}
}
等々...
編集:すべてのサブアクティビティで見たいものを共有する方法を示すサンプルコードを追加しました。たとえば、各アクティビティにリストがある場合は、getAdapter()
メソッドのサブアクティビティで特定のアダプターを定義し、リストをこのアダプターにCommonBehaviorActivity
バインドしたり、構成(リスナーのバインドなど)したりできます。 ..)
反対に、アクティビティを非常に高速に切り替えたい場合で、ボタンで「戻る」必要がない場合は、表示/移動ビューの方が適している可能性があります。
いくつかのアクティビティを作成すると、過度のifやelseの条件に対処しないため、コードが読みやすくなり、デバッグが容易になります。パフォーマンスのオーバーヘッドはありません。アクティビティは高速に読み込まれ、Androidはバックスタックを管理し、必要に応じて一時停止したアクティビティを強制終了することでメモリを解放します(単一のアクティビティの場合はそうではありません)。
アクティビティが類似している場合は、機能を別々のクラスに配置して、アクティビティ間で再利用できます。レイアウトと同じように、一般的なパーツを再利用できるように設計できます。
動的UIを表示する場合は、フラグメントを使用することもできます。フラグメントのコンテンツを動的に変更することも、フラグメント自体を変更することもできます。特定のフラグメントを常に表示し、他のフラグメントを非アクティブにしておくことができます。この場合、必要なアクティビティは1つと複数のフラグメントのみです。
アプリのUIをどのように描画するかによって異なります。フラグメントの例はこちらから入手できます