2014-06-28 167 views
0

我一定錯過了一些東西。在PreferenceActivity內部點擊header時,是否有任何方法可以簡單地推送新的片段(簡單地稱爲標準Android片段)?當PreferenceHeader被點擊時顯示片段?

例如,我想,當用戶點擊顯示我作爲一個Fragment創建自定義數字選擇器視圖:

<header 
android:id="@+id/preferences_date_time" 
android:fragment="com.xxx.appname.view.settings.DateTimeFragment" 
android:icon="@drawable/menu_icon_date" 
android:title="@string/pref_date_time" > 
</header> 

這樣我可以顯示在應用程序的其它部分將該片段(作爲Dialog,在Activity內等)。

片段被簡單地定義:

public class DateTimeFragment extends Fragment 
{ 

    public DateTimeFragment() 
    {} 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
     View view = inflater.inflate(R.layout.fragment_date_time, container); 

     return view; 
    } 
} 

注意的是,這裏的關鍵,我的問題是,我只是想表明一個普通的舊片段時,頭部被竊聽,不屬於任何偏好片段類型。

任何幫助,非常感謝!

回答

0

據我所知,在點擊PreferenceHeader時無法顯示任意Fragment

我做了什麼,而不是爲啓動該託管我想顯示該片段的活性:

<header 
    android:id="@+id/preferences_date_time" 
    android:icon="@drawable/menu_icon_date" 
    android:title="@string/pref_date_time" > 
    <intent 
     android:action="android.intent.action.MAIN" 
     android:targetClass="com.xxx.appname.view.settings.DateTimeActivity" 
     android:targetPackage="com.xxx.appname" /> 
</header> 

確保您Activity中列出您AndroidManifest.xml否則它將不會被發現:

<activity 
    android:name="com.xxx.appname.view.settings.DateTimeActivity" 
    android:label="@string/date_time_picker_title" 
    android:parentActivityName="com.xxx.appname.view.settings.SettingsActivity" 
    android:theme="@style/PreferencesTheme" > 
</activity> 

這樣我就可以在我的設置菜單中使用我的Fragment,並在應用程序中需要其他任何地方。

相關問題