2012-01-19 10 views
4

PreferenceActivityと協力しており、錠剤と完全に互換性があります。タブレットのPreferenceActivityでデフォルトヘッダーを選択するにはどうすればよいですか?

これについては、私はのGoogleの中で、このpageの中で助言を受けます。

@Override 
public void onBuildHeaders(List<Header> target) { 
    loadHeadersFromResource(R.xml.preference_headers, target); 
} 

私の問題は、アクティビティが開始されたときにデフォルトヘッダーを選択できるようにすることです。

たとえば、いくつかのヘッダーがあります。

  • 一般設定
  • UI設定
  • ネットワーク設定

そして、私はから来た活動に応じて、私は、正しい設定を表示したいと思います。

これを達成する方法はありますか?

答えて

8

を使用してPreferenceHeadersを作成することができ、あなたが最初に表示されるべきフラグメントを指定するために余分な文字列「EXTRA_SHOW_FRAGMENT」を追加することができます。選択したいフラグメントの名前を渡します。次のコードを使用することができます。例えば

、あなたは一般設定ヘッダ(とその内容)を選択したい場合:この上

final Intent intent = new Intent(this, ExtendedPreferenceActivity.class); // Assume we call it from an other activty 
intent.putExtra(EXTRA_SHOW_FRAGMENT, GeneralSettingsFragment.class.getName()); 
startActivity(intent); 

詳しい情報はここで見つけることができます:http://developer.android.com/reference/android/preference/PreferenceActivity.html

Googleの問題報告では、Androidバージョン3.0では正しいヘッダーが自動的に選択されないことが報告されています。問題報告と回避策については、こちらをご覧ください:issue report

+0

私はテストなしでそれを受け入れ、来週コードを試してみるが正しいと思われる。どうもありがとうございます。 –

+0

私はこの午後を探して失った..ありがとう! – Shine

+0

それは動作します!どうもありがとうございました – Simon

0

あなたはデフォルトでフラグメントを使用することができます。ここでは

は、私がやったことです:

​​

とデフォルトのXML(前ハニカムバージョン...など):

<PreferenceScreen 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <PreferenceCategory 
     android:title="@string/preferences_category_1"> 

     <com.taptime.ui.preferences.ClickPreference 
      android:key="@string/preferences_conditions_key" 
      android:title="@string/preferences_conditions_title"/> 

    </PreferenceCategory> 

    <PreferenceCategory 
     android:title="@string/preferences_category_2"> 

     <com.newin.android.ui.widget.ClickPreference 
      android:key="@string/preferences_logout_key" 
      android:title="@string/preferences_logout_title" 
      android:summary="@string/preferences_logout_summary"/> 

    </PreferenceCategory> 

</PreferenceScreen> 
関連する問題