0

問題は、リストから 1 つの要素をクリックしても詳細フラグメント ビューに移動しないことです..しかし、横向きモードにすると正常に動作します.縦向きのままでリスト ビューから詳細ビューに移動する方法を教えてくださいモード。

これは私のリストクラスです

 public class HadithList extends ListFragment 
    {

        @Override
        public void onActivityCreated(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onActivityCreated(savedInstanceState);
            Log.d("ERROR", "In hadith list");
            String[] strHadith = new String[] {"Hadith one","Hadith two","Hadith three","Hadith four"};
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity()
                    ,android.R.layout.simple_list_item_1,strHadith);
            setListAdapter(adapter);

        }

        @Override
        public void onListItemClick(ListView l, View v, int position, long id) {
            // TODO Auto-generated method stub
            String item = (String) getListAdapter().getItem(position);
            HadithDetail hadithDetail = (HadithDetail) getFragmentManager().findFragmentById(R.id.hadith_detail);
            //HadithDetail hadithDetail1 = (HadithDetail) getFragmentManager().findFragmentByTag("Details");
            FragmentTransaction ft = getFragmentManager().beginTransaction();
            Toast.makeText(getActivity(), "Selected "+position, Toast.LENGTH_SHORT).show();
            //if(hadithDetail != null && hadithDetail.isInLayout())
            hadithDetail.setText(getDetails(item));
            ft.replace(R.id.hadith_list, hadithDetail);
            ft.commit();

        }

        private String getDetails(String topic)
        {
            if(topic.toLowerCase().contains("one"))
            {
                return "Here is hadith 1 detail";
            }
            if(topic.toLowerCase().contains("two"))
            {
                return "Here is hadith 2 detail";
            }
            if(topic.toLowerCase().contains("three"))
            {
                return "Here is hadith 3 detail";
            }
            if(topic.toLowerCase().contains("four"))
            {
                return "Here is hadith 4 detail";
            }
            return "Cannot find detail";
        }
    }

これは私の詳細クラスです

![public class HadithDetail extends Fragment 
{
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        Log.d("ERROR", "In hadith detail");
        View view = inflater.inflate(R.layout.hadith_detail,container,false);
        return view;
    }

    public void setText(String txt)
    {
        TextView view = (TextView) getView().findViewById(R.id.txtDetail);
        view.setText(txt);
    }
}][1]

活動メイン

<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" >

    <fragment
        android:id="@+id/hadith_list"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="match_parent"
        class="com.example.hadith_app.HadithList"
        />

</LinearLayout>

詳細レイアウト

    <TextView 
        android:id="@+id/txtDetail"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="center_horizontal|center_vertical"
        android:layout_marginTop="20dip"
        android:text="Hadith 1 Detail"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textSize="30sp"
        />


</LinearLayout>

Activity_Main.xml (Land* strong text *)

<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" >

    <fragment
        android:id="@+id/hadith_list"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="match_parent"
        class="com.example.hadith_app.HadithList"
        />

    <fragment 
        android:id="@+id/hadith_detail"
        android:layout_width="0dp"
        android:layout_weight="2"
        android:layout_height="match_parent"
        class="com.example.hadith_app.HadithDetail"
        />
</LinearLayout>
4

2 に答える 2