+++++++++++++++++++++++++++++++++++=
为了从一个XML文件中获取界面,使用addPreferenceFromResource(int)方法。根元素应该使用PreferenceScreen,在层次结构中随后的PreferenceScreen将导致屏幕分割处。
为了指定一个意图来查询都带有各自首选项的activitiy,使用addPreferenceFromIntent方法。每个activity可以在manifest文件中指定meta-data来指向一个XML文件资源。这些资源文件将被填充到单独的首选项层次结构并且通过这个fragment来展示。
为了指定一个以PreferenceScreen为根元素的对象,使用setPreferenceScreen(PreferenceScreen)方法。
+++++++++++++++++++++++
方便起见,这个fragment实现了一个用于当前层次结构中任意首选项的点击事件监听器,
onPreferenceTreeClick(PreferenceScreen,Preference).
----------------------------------------------------------------------------------------------------------------------------------------
使用PreferenceFragment 的一个例子,效果与之前使用继承PreferenceActivity差不多,步骤如下:
1.创建一个工程,在MainAcitivity中 添加菜单按钮 及 对应效果
package com.example.fragementexam;
import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.app.Activity; import android.content.Intent; public class MainActivity extends Activity { private static final int menu_setting = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub menu.add(0,menu_setting,1,"设置").setIcon(android.R.drawable.ic_menu_preferences); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub super.onOptionsItemSelected(item); Intent intent = new Intent(this, FragmentPreferences.class); startActivity(intent); return false; } } ------------------------------ cut here -----------------------------------2.在res文件夹下面新建一个xml文件夹,在里面新建一个preferences.xml文件
3、FragmentPreferences.java的代码部分
------------------------------ cut here ----------------------------------- package com.example.fragementexam; import android.app.Activity; import android.os.Bundle; import android.preference.PreferenceFragment; public class FragmentPreferences extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); getFragmentManager().beginTransaction().replace(android.R.id.content, new PrefsFragement()).commit(); } public static class PrefsFragement extends PreferenceFragment{ @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); } } } ------------------------------ cut here -----------------------------------
大致对PreferenceFragment的学习使用就是这样,以后在高版本上面开发的时候可以考虑这种方式