0

このリンクからマスター/詳細フラグメントを作成しています。これは正常に動作します。ここでは、詳細フラグメント クラスのテキストビューの代わりに、リストビューを実装したいと思います。(つまり) マスタービューの詳細を子リストビューとして表示したいので、detail.xml を試しました。

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <ListView 
            android:layout_width="120dp"
            android:layout_height="wrap_content"
            android:id="@+id/listview1"
            />"
 <ListView 
            android:layout_width="120dp"
            android:layout_height="wrap_content"
            android:id="@+id/listview2"
            />"

    </LinearLayout>

そして私の詳細ではFragmentクラス

public class DetailFragment1 extends ListFragment {
     @Override
     public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      String[] values = new String[] { "1", "2", "3",
                "4"  };
      ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
                android.R.layout.simple_list_item_1, values);
              setListAdapter(adapter);

     }

私の問題は、初期段階で子リストビューが表示されていることですが、マスターページの最初の行をクリックしたときにこのリストビューを表示したい.フラグメントが初めてなので、これを達成するのを手伝ってください. 前もって感謝します..

4

2 に答える 2

0

このようにする代わりに、ListView をマスターおよび frameLayout コンテナーとして含むレイアウトを設計できます。frameLayout コンテナでは、レイアウトを動的に拡張できます。これは、子のリストビューと詳細ビューを持つことができるように設計されています。

<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:orientation="horizontal"
    tools:context=".NavigationActivity" >

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:background="@color/strip_background"
        android:layout_weight="1"
        android:orientation="vertical" >

        <ListView
            android:id="@+id/nav_lv_transactions"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scrollbars="none" >

        </ListView>

    </LinearLayout>

    <FrameLayout
        android:id="@+id/nav_fl_frag_container"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="14"
        android:background="@android:color/darker_gray" >

    </FrameLayout>

</LinearLayout>

onclick listerner にこのコードを入れて、

Bundle arguments = new Bundle();
arguments.putString(ARG_ITEM_ID,
"Some Name");
MyClassFragment newFragment = new MyClassFragment();
newFragment.setArguments(arguments);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.nav_fl_frag_container, newFragment);
transaction.commit();

これを試して。それが動作します

于 2013-10-24T07:53:26.890 に答える