2011-01-25 3 views
9

私は動的なエントリの一覧を持つ設定画面を作成しようとしていますが、それぞれをクリックすると、別の設定画面が表示されます。 例として、メールアカウントのリストと、アカウント設定が利用可能なメールアカウントのリストを考えてみましょう。Androidの環境設定の動的リストの下にネストされたPreferenceScreens

PreferenceScreensを使用してネスティングを作成することはできますが、それぞれのコードにサブ環境設定構造を作成せずに複数の項目に簡単に拡大縮小することはできません。

AndroidのUI全体でいくつかのバリエーションがあります。

このような構造を作成するための推奨方法はありますか?

Possibilitesは、次のとおりです。

  1. 分離、独立した活動
    作品を私の意見

  2. 入れ子の中に乱雑で、コードがmaintainenceのためのお尻にPreferenceScreens
    痛みを作成し、それは好みを意味しますXMLフラグメントとして格納されなくなりました

  3. 入れ子にされたPreferenceScreens
    私は非表示にする方法を見つけることができませんサブツリーに各1
    ためsetPreferenceScreen()を使用して示されている

  4. 一つの「サブ」PreferenceScreenを別のXMLファイルを展開する方法を見つけることができません"テンプレート" PreferenceScreenとそれはナビゲーションを壊す。

サンプルXML:

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" 
    android:title="@string/prefs_title"> 
    <EditTextPreference android:key="add_console" 
     android:title="@string/prefs_add_console"></EditTextPreference> 
    <PreferenceCategory android:title="@string/prefs_consoles_title" 
     android:key="list"> 
     <PreferenceScreen android:summary="http://cctv.icode.co.uk/" 
      android:title="iCode Console"> 
     </PreferenceScreen> 
     <PreferenceScreen android:summary="http://test.icode.co.uk/" 
      android:title="Test Console"> 
     </PreferenceScreen> 
    </PreferenceCategory> 
    <PreferenceScreen android:title="Console (template)" 
     android:key="console"> 
     <EditTextPreference android:title="@string/prefs_console_host" 
      android:summary="@string/prefs_not_set" android:key="host"></EditTextPreference> 
     <CheckBoxPreference android:title="@string/prefs_console_auth" 
      android:summary="@string/prefs_console_auth_summary" android:key="auth"></CheckBoxPreference> 
     <EditTextPreference android:shouldDisableView="true" 
      android:title="@string/prefs_console_authuser" android:key="authuser" 
      android:dependency="auth" android:summary="@string/prefs_not_set"></EditTextPreference> 
     <EditTextPreference android:title="@string/prefs_console_authpass" 
      android:key="authpass" android:dependency="auth" android:summary="@string/prefs_not_set"></EditTextPreference> 
     <CheckBoxPreference android:title="@string/prefs_console_pair" 
      android:summary="@string/prefs_console_pair_summary" android:key="pair"></CheckBoxPreference> 
    </PreferenceScreen> 
</PreferenceScreen> 

私はlistの下のエントリは動的なもので、各下console好みを示したいと思います。

他のすべてのアイデアを歓迎します。

おかげ

+0

私はこの質問をよく理解していません。私たちはすでに基本的な実装だけで、あなたが望むものを(私は)思っています。あなたが気に入らない現在の実装についてはどうですか? – user432209

+0

よく、私はまだそれを実装する方法を見つけることができません...:p – Deanna

+0

私は追加するdynaimcの項目の下にコード内の各サブツリーを追加することができますが、私はXMLをファイル。 – Deanna

答えて

0

あなたは好みのために使用される主なものに動的にXMLファイルをインクルードしようとしたことがありますか?

http://www.aslingandastone.com/2010/dynamically-changing-android-views/

http://android-developers.blogspot.com/2009/02/android-layout-tricks-2-reusing-layouts.html

彼らはあなたがあなたのポイント3で求めていたものを行う方法について説明します:

ネストされた、膨張

この技術は、これらの2件の記事で詳しく説明していますPreferenceScreens

基本的な考え方は、既存のものに別のXMLファイルを含めるには、この簡単なタグを使用することです:

<include 
    android:id="@+id/layout_to_nest" 
    layout="@layout/layout_to_nest" /> 

あなたはまだそうでない場合、試してみる価値はあると思われることをしようとした場合、私は知りません!

+0

私はチャンスを得るときにそれを試してみる、ありがとう。 – Deanna

関連する問題