6

私は2つのアクティビティを持っています:A、B.アクティビティAのレイアウトには、ユーザーがコンテンツを変更するビューグループがあります.アクティビティBでは、そのビューグループを変更せずに再度表示する必要があります。そのビューグループの実際のコピーである必要があります。 texts,colors,dimensions,order(of childs) and ... must be same.So I can't use Layout Inflater.そのビューグループの子のタイプのクラスを作成せずにプロパティを変更することは可能ですか?異なるビューグループを持つアクティビティ。最後のアクティビティで各アクティビティのビューグループを表示するのは非常に困難です。

また、それらのビューグループを親から削除することはできません。

4

5 に答える 5

5

内容が同じなら、二つの異なる活動をしても意味がありません。1 つのアクティビティのコンテンツを動的に変更することができ、動作は 2 つのアクティビティがあった場合と同じになります。本当に必要な場合は、必要なすべての情報を保存してアクティビティを再構築し、それを新しく作成されたアクティビティに渡す必要があります。これを見てください。

于 2013-01-23T15:40:28.880 に答える
4

これを行う簡単な方法はありません。アクティビティ間でビューを移動することはできません。したがって、いくつかのオプションがあります。

  • viewGroup のビットマップを作成し、新しいアクティビティで表示します (編集可能なコピーが必要な場合は機能しません)
  • ビューの階層状態を古いアクティビティに保存し、新しいアクティビティで再作成します (フラグメントを使用すると簡単になります)。
  • 新しいアクティビティを作成しないでください。ターゲット ViewGroup に触れていない古いものでいくつかの UI パーツを変更するだけです。
于 2013-01-21T10:23:56.153 に答える
1

共有する必要がある ViewGroup については、C という名前の Fragment にリファクタリングします。次に、Activity A と B のセクションからこの共有部分を差し引いた Fragment を作成します。次に、これらすべてのフラグメントを新しい包含アクティビティ内に含めます (アクティビティ A と B は不要になります)。

フラグメント A と C が新しいアクティビティ A になります。フラグメント B と C が新しいアクティビティ B になります。最初の状態から 2 番目の状態に遷移するには、FragmentTransaction を実行してフラグメント B を追加し、フラグメント A を削除します。このトランザクションをスタックをバックして、戻るボタンで最初の状態に戻ります。

于 2013-01-25T18:02:19.907 に答える
1

ビュー グループの構成を保持するクラスを作成します。この構成クラスに、ViewGroup に関連するすべての情報を保持させます。テキスト、色、注文の寸法、およびユーザーが変更したすべてのものを保持します。このクラスのオブジェクトをアクティビティ A からアクティビティ B に渡し、これを使用して、同じレイアウトをインフレートして同じビューを再現します。

それが役立つことを願っています。

あなたの質問に答えるために、これを行う簡単な方法は他にありません。

于 2013-01-21T07:34:52.573 に答える
1

一般的な疑問ですか?2 つのアクティビティを使用する理由 同じビューに割り当てる 2 つのフラグメントを使用しない理由 基礎となるアクティビティを使用して、フラグメントの 1 つ (ビュー) で発生したすべての変更を保存し、ユーザーが他のビューに渡されたときに送信するだけです。パラメータを 2 番目のフラグメントに渡します。これにより、2 つのアクティビティであることをユーザーにエミュレートしていますが、実際には 1 つのアクティビティによって制御される 2 つのフラグメントのみです。

于 2013-01-28T01:16:52.560 に答える