Android设置Settings:PreferenceFragment【4】
最新的android谷歌官方设计文档指出,在后续的Android开发中,应尽量使用PreferenceFragment而不是PreferenceActivity,与时俱进,需要把过去的PreferenceActivity迁移到PreferenceFragment。迁移其实比较简单,在附录的参考文章基础上,本文用PreferenceFragment替代一直使用的PreferenceActivity。
(1)以前写在PreferenceActivity里面的代码基本上可以原封不动的改造成PreferenceFragment。比如SettingsFragment.java:
package zhangphil.preferencefragment;
import android.os.Bundle;
import android.preference.PreferenceFragment;
public class SettingsFragment extends PreferenceFragment{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
res/xml目录下的preferences.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 点击将浏览和打开网页 -->
<Preference
android:summary="访问 http://blog.csdn.net/zhangphil"
android:title="浏览" >
<intent
android:action="android.intent.action.VIEW"
android:data="http://blog.csdn.net/zhangphil" />
</Preference>
</PreferenceScreen>
(2)然后在另外一个普通的activity中启动加载SettingsFragment.java:
package zhangphil.preferencefragment;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new SettingsFragment()).commit();
}
}
这样项目中的代码结构变成如图所示形式:
![](https://img-blog.csdn.net/20151203174710727?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
代码运行结果:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)