電話用のアプリケーションは十分に開発されていますが、タブレットのサポートを追加したいと思います。メインビューは、SimpleCursorAdapterを使用してデータベースからリストを取得するListViewで構成されています。ユーザーがアイテムをタップすると、アクティビティ(そのIDに固有!)が開始されます。一部のアクティビティは同じビューを共有しますが、情報が異なります。すべてのアクティビティはFragmentAcivityを拡張します。タブレットでは、画面の面積が多いので、左側にListViewを表示したいのですが、ユーザーがアイテムをタップすると、左側にSPECIFICアクティビティが表示されます。これは、ページのほぼ半分でここにある画像を模倣します。フラグメントについての十分な知識がありませんが、どうすればこれを達成できますか?さらに情報が必要な場合はお知らせください。
2 に答える
この回答では、「メインアクティビティ」を使用して「メインアクティビティ」を使用し、ListView
「その他のアクティビティ」を使用して右側に表示したいアクティビティを参照します。
サムネイルスケッチは次のとおりです。
他の各アクティビティを、UIがフラグメントによって定義されているアクティビティに変換します。
タブレットのメインアクティビティのレイアウトを作成します。このレイアウトには、に加えて、他のアクティビティを実行する場所
ListFragment
のFrameLayout
コンテナが含まれています。メインアクティビティの既存のレイアウトはそのままにしておきます。の中で、イベントをメインアクティビティに渡し
onListItemClick()
ます(例:)ListFragment
((MainActivity)getActivity()).heyDoSomething(position)
メインアクティビティ(例
heyDoSomething()
)のイベント処理メソッドで、があるかどうかを確認しますFrameLayout
。その場合は、を実行して、の内容を他のアクティビティの適切なフラグメントFragmentTransaction
に置き換えます。FrameLayout
そうでない場合は、電話を使用しています。その場合、他のアクティビティの1つを開始します。
これは、これの一部を示すサンプルアプリケーションです(いくつかの「その他のアクティビティ」がないため、リストをクリックすると、右側の既存のフラグメントに新しいコンテンツが読み込まれます)。
ここでshakespearの例を見てください:http://android-developers.blogspot.com/2011/02/android-30-fragments-api.html