我在 Internet 上阅读了有关为应用程序创建激活设置的信息。在我找到的所有文章中,都使用了该方法addPreferencesFromResource():
public class PrefActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences)
}
}
但事实证明,这种方法已被弃用,这就提出了一个问题:API 版本 25 中的设置激活是如何创建的?
UPD:我做了@Regent 给出的答案中所写的一切,但是当我尝试启动设置 akivity 时,应用程序关闭,弹出“应用程序停止”窗口。PrefFragment.java:
package com.evgeniy.calc;
import android.os.Bundle;
import android.preference.PreferenceFragment;
public class PrefFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
PrefActivity.java:
package com.evgeniy.calc;
import android.preference.PreferenceActivity;
import java.util.List;
public class PrefActivity extends PreferenceActivity {
@Override
public void onBuildHeaders(List<Header> target) {
loadHeadersFromResource(R.xml.preferences, target);
}
@Override
protected boolean isValidFragment(String fragmentName) {
return PrefFragment.class.getName().equals(fragmentName);
}
}
在 MainActivity.java 中调用设置活动:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_settings:
startActivity(new Intent(this, PrefActivity.class));
return true;
case R.id.action_about:
startActivity(new Intent(this, AboutActivity.class));
return true;
default:
return super.onOptionsItemSelected(item);
}
}
该方法已被弃用,因为当前的建议是为此使用PreferenceFragment。有关此的更多信息,请参阅手册。
简而言之,它是这样的: