您的位置:首页 > Web前端

安卓首选项 PreferenceFragment相关问题

2015-11-19 12:00 162 查看

对Learning Android一书第89页的代码调试发现,PreferenceActivity类已经过时,网上推荐使用PreferenceFragment类。虽然两个类的方法类似,但是在使用过程中发现很多问题,总结如下:

第一次只是简单的将PreferenceActivity改为了PreferenceFragment,其余代码不变。

public class PrefsActivity extends PreferenceFragment {

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);

}</span>

结果,程序可以成功在手机终端上运行但是点击菜单按钮后出现“prefs”,再点击它之后程序直接跳出,并没有出现

username

password

这样的界面,在网上找了关于PreferenceFragment相关的资料后将代码PrefsActivity类改为如下:

import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.app.Activity;

public class PrefsActivity 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 class PrefsFragement extends PreferenceFragment {

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);

}
}
}

程序运行成功,如图所示:







此外在编写过程中注意需要将新增加的PrefsActivity类在AndroidManifest.xml文件中进行注册,否则编译无法通过。

添加与注册方式参见Learning Android一书第七章。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: