2016-08-31 12 views
0

自分の設定メニューのためにPreferenceScreen(pref_screen.xml)を作成しました。異なるカテゴリのオブジェクトのリストが含まれています。ボタン、ビュー、テキスト、イメージを含む別のカスタムレイアウト(settings.xml)を作成しました。アンドロイドでカスタム設定画面を作成する

自分のレイアウトの内容を自分のPreferenceScreenに表示するにはどうすればいいですか?

これは私のpref_screen.xml

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 


    <PreferenceCategory 
     android:title="Flight Selection" > 

     <Preference 
      android:title="Change Flight" 
      android:selectable="true" 
      android:key="@string/choose_flight" 
      android:icon="@drawable/icon_select_flight" /> 
     <Preference 
      android:title="Close Flight" 
      android:selectable="true" 
      android:key="@string/close_flight_successful" 
      android:icon="@drawable/icon_select_flight" /> 

    </PreferenceCategory> 

    <PreferenceCategory 
     android:title="Terminal Panel" > 

     <Preference 
      android:title="Change Terminal" 
      android:selectable="true" 
      android:icon="@drawable/icon_terminal" /> 

    </PreferenceCategory> 

    <PreferenceCategory 
     android:title="Printer Panel" > 

     <Preference 
      android:title="Choose Printer" 
      android:icon="@drawable/icon_printer" /> 

    </PreferenceCategory> 

    <PreferenceCategory 
     android:title="AirFi Sync" > 

     <SwitchPreference 
      android:title="Enable Sync" /> 

     <Preference 
      android:title="Sync Group" 
      android:icon="@drawable/airfi" /> 

     <Preference 
      android:title="Sync Details" 
      android:icon="@drawable/airfi" /> 

    </PreferenceCategory> 


</PreferenceScreen> 

であり、これは、この個々のpreferenceScreenusingのための私のsettings.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/settings_content" 
    android:layout_width="match_parent" 
    android:layout_height="fill_parent" 
    android:layout_marginLeft="5dp" 
    android:layout_marginRight="5dp" 
    android:orientation="vertical" 
    android:weightSum="10" > 



     <RelativeLayout 
      android:layout_width="wrap_content" 
      android:layout_height="35dp" 
      android:id="@+id/relativeLayout3"> 

     </RelativeLayout> 
     <View 
      android:layout_width="match_parent" 
      android:layout_height="2dp" 
      android:background="@color/transparent" 
      android:layout_below="@+id/relativeLayout2" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:id="@+id/view" /> 

     <Button 
      android:layout_margin="10dp" 
      android:id="@+id/select_flight_button" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentStart="true" /> 


     <Button 
      android:layout_margin="10dp" 
      android:id="@+id/close_leg" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" /> 

     <Button 
      android:layout_margin="10dp" 
      android:visibility="visible" 
      android:id="@+id/configure_printer" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@drawable/white_button_bg_state_list" 
      android:drawableLeft="@drawable/icon_printer" 
      android:maxHeight="@dimen/global_button_height" 
      android:minHeight="@dimen/global_button_height" 
      android:text="@string/choose_printer" 
      android:textColor="@drawable/custom_text_color_for_buttons" 
      android:textSize="@dimen/button_text_size" 
      android:textStyle="bold" 
      android:layout_below="@+id/textView4" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" /> 

     <Button 
      android:layout_margin="10dp" 
      android:visibility="visible" 
      android:id="@+id/configure_print_format" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@id/configure_printer" 
      android:layout_gravity="center" 
      android:layout_marginTop="10dp" 
      android:background="@drawable/white_button_bg_state_list" 
      android:drawableLeft="@drawable/icon_printer" 
      android:maxHeight="@dimen/global_button_height" 
      android:minHeight="@dimen/global_button_height" 
      android:text="@string/change_printer_format" 
      android:textColor="@drawable/custom_text_color_for_buttons" 
      android:textSize="@dimen/button_text_size" 
      android:textStyle="bold" /> 

     <Button 
      android:layout_margin="10dp" 
      android:visibility="visible" 
      android:id="@+id/configure_payment_device" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@drawable/white_button_bg_state_list" 
      android:drawableLeft="@drawable/icon_terminal" 
      android:maxHeight="@dimen/global_button_height" 
      android:minHeight="@dimen/global_button_height" 
      android:text="@string/change_payment_device" 
      android:textColor="@drawable/custom_text_color_for_buttons" 
      android:textSize="@dimen/button_text_size" 
      android:textStyle="bold" 
      android:layout_below="@+id/textView3" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" /> 

     <TextView 
      android:textStyle="bold" 
      android:textSize="20sp" 
      android:text="Terminal Panel" 
      android:textColor="@color/adyen_green" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/close_leg" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:id="@+id/textView3" /> 

     <TextView 
      android:textStyle="bold" 
      android:textSize="20sp" 
      android:text="Printing Panel" 
      android:textColor="@color/adyen_green" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/configure_payment_device" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:id="@+id/textView4" /> 


    </RelativeLayout> 


    <View 
     android:id="@+id/divider_net_sales" 
     android:layout_width="match_parent" 
     android:layout_height="1dp" 
     android:layout_marginTop="10dp" 
     android:layout_marginBottom="5dp" 
     android:background="@color/transparent" /> 




    <RelativeLayout 
     android:id="@+id/ifs_panel" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:visibility="visible" 
     android:gravity="bottom"> 

     <View 
      android:id="@+id/divider_ifs_panel" 
      android:layout_width="match_parent" 
      android:layout_height="1dp" 
      android:visibility="gone" 
      android:background="@color/transparent" /> 

     <TextView 
      android:id="@+id/sync" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_below="@id/divider_ifs_panel" 
      android:layout_centerHorizontal="true" 
      android:layout_marginBottom="5dp" 
      android:layout_marginTop="5dp" 
      android:text="@string/airfi_sync" 
      android:textSize="18sp" 
      android:visibility="gone" 
      android:textStyle="bold" /> 

    </RelativeLayout> 

</LinearLayout> 
+0

'Preference'(あるいは' Preference'の任意のサブクラス)を拡張するクラスを作成し、 'org.test.MyPreference'のようにして、' ' Preference ... /> ' – pskink

+0

settings.xmlは、SettingsFragmentクラスによって処理されています。 PreferenceActivityクラスでこのフラグメントを使用するにはどうすればよいですか? – telmomarques

+0

コードスニペットpskinkを追加できますか? – telmomarques

答えて

0

セットのレイアウトです:この使用findViewById

<Preference 
    android:title="@string/label_pref_version" 
    android:key="@string/pref_version" 
    android:layout="@layout/pref" /> 

へcustomlayoutの要素にアクセスします。

+0

私のPreferenceActivityクラスでfindViewByIdを使用しますか?申し訳ありませんが、Androidには初めてです。 – telmomarques

+0

アクティビティコードにはい。 –

関連する問題