0

Android のアクティビティと AndroidManifest.xml に関する質問があります。私がJavaサーブレットを扱っていて、「モジュールベース」またはプラグインベースのサーバーに似たものを作成したかったときに、疑問が生じました。これは正常に動作しており、次のようなコード アプローチを使用して、必要なサーブレットを動的に読み込むことができます:動的にサーブレットを servletConfig に追加します。サーブレットは、サーバーの起動時に動的に検出され、マップされます。

ここでの問題は、適切なアクティビティを見つける方法、それらの新しいインスタンスを作成する方法、またはそれらを開始する方法ではなく、私が理解している部分です。パッケージを反復処理して、適切なアクティビティ クラスを見つけ、それらの新しいインスタンスを作成し、リストに追加できます。

私は、interfaceすべてのアクティビティが有効なアクティビティになるために実装する必要がある を使用しています。そうすれば、自分のアプリケーション用に新しいパーツ、エクステンション、または新しい機能を作成でき、すべてがうまく機能します。私のアプリケーションには、ユーザーがクリックできるボタンのリストがあり、ボタン リストは、ListView.

private void displayLoadedContent() {
    View v = inflateLayout(R.layout.buttonlayout);
    ListView view = (ListView) v.findViewById(R.id.list);
    view.setAdapter(new ListButtonAdapter(this, content));
}

どこで次のようcontentに宣言されています

List<MyActivityInterface> content;

ListButtonAdapter拡張しBaseAdapterます。

問題ありません。問題は、AndroidManifest.xml ですべてのアクティビティを宣言する必要があることです。そのファイルは、表示可能なアクティビティの大きなリストのようなもので、ちょっと面倒なので、ここではコードを表示しません。

マニフェストに 1 つのアクティビティを追加する必要があることはわかっていますが、1 つのアクティビティで十分であることを望んでいました。私のアプローチは、多くの点でFront Controller パターンと見なすことができます。ここでは、各アクティビティが、必要なアクティビティの読み込みと表示を担当します。

マニフェストにアクティビティを動的に登録する(または別の方法で実行できるようにする)ことさえ可能かどうかを単に尋ねているだけです。そうでない場合、他の有効な解決策はありますか?

4

1 に答える 1

1

Androidでは、各アクティビティをAndroidManifest.xml事前にファイルに登録する必要があります。デプロイすると、アプリは.apkファイルとしてデバイス上に存在します。このファイルは変更できません(新しいAPKで更新/置換される場合を除く)。

質問を正しく理解していれば、マニフェストファイルに多数のアクティビティをリストする必要はありませんか?フラグメントをマニフェストファイルに登録する必要はないため、UIコンポーネントを動的に交換することが目標である場合は、それが答えになります。フラグメントは、サポートライブラリを介して1.6に戻すことができます。

于 2012-10-02T16:47:20.130 に答える