Android 3.0以降では、Androidチームは、アクティビティよりもフラグメントを使用する必要があることを強く求めています。これは便利だと思いますが、アプリでクリックイベントを処理できるようにしたいと思います。アプリの右側でリストフラグメントを使用しているため、フラグメントをホストするアクティビティでonclick(または任意のクリックリスナー)を実行します。そのため、アイテムをXMLに配置することから、フラグメントマネージャーを使用することに移行する必要がありました。
設計ドキュメントでは、次の図が示されています。
http://developer.android.com/training/basics/fragments/fragment-ui.html
私が欲しいのはフラグメントA/BタブレットUIです。ただし、このページのどこにも、実際にこれを行う例は示されていません。フラグメントマネージャは、一度に1つのフラグメントしか処理できないようです。これは、画像が表すものとはまったく逆です。それは私にそれがXMLで使用していると思わせます...しかしそれではどのように私はonclickを得るでしょうか?これらのドキュメントは私にはあまり意味がありません。それは一つのことを示し、それから別のことを言います。タブレットのフラグメントAを削除したい場合はどうなりますか?まだ存在しないフラグメントCを追加しますか?Fragment Managerを使おうとしても、それは可能ですか????
フラグメントマネージャーが複数のフラグメントを使用している場合は取得できないと思います。使用している場合、タブレットのような画像内のアイテムを取得するためにこれをどのように使用する必要がありますか?左側(A)はリストビューであり、右(B)何でも。フラグメントのIDがないと、アクセスする方法がありません。
これが適切かどうかはわかりませんが、私のコードの一部を次に示します。
ガイドのように作成した単一のフレームレイアウトにフラグメントを追加します
//Activity
FragLaunch launchPane = new FragLaunch();
// In case this activity was started with special instructions from an Intent,
// pass the Intent's extras to the fragment as arguments
// firstFragment.setArguments(getIntent().getExtras());
// Add the fragment to the 'fragment_container' FrameLayout
getFragmentManager().beginTransaction()
.add(R.id.launch_frag_container, launchPane).commit();
}
また、7インチタブレットのポートレートモードでは、スワイプ可能なビューページャーを使用する必要があります。XMLで設計したときは魅力のように機能しましたが、リストフラグメントにアクセスする必要があるため、機能しません( 2つのフラグメントを持つことができないためアクセス)
FragLaunchのコンテンツビューのXML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:gravity="center_vertical"
android:orientation="vertical" >
<TextView
android:id="@+id/initial_directions"
style="@style/textScalar.Roboto.Light"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/initial_directions"
android:layout_marginBottom="30dp"
tools:context=".Launch" />
</LinearLayout>
これを写真のフラグメントAとして表示したい:フラグメントのFragHistory.java/xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/spamhistory"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Spam History" />
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:drawSelectorOnTop="false" />
</LinearLayout>
誰かがこれについて何か洞察を持っていますか?