溢出菜单中的设置
为了使用溢出菜单中的设置,您需要覆盖onOptionsItemSelected方法(如果尚未覆盖)并处理正确的 id。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
// Code to show settings.
return true;
}
return super.onOptionsItemSelected(item);
}
替换R.id.action_settings
为您的菜单项的 ID。
显示 PreferenceFragment
正如您在图像中显示的那样,您的首选项屏幕与现有布局重叠。
请注意,您只能替换您动态添加的片段。
我猜你的屏幕的 xml 中有 Guess Country 和 Guess Flags 按钮被夸大了,并且没有作为片段动态添加,所以通过添加首选项片段,它只会重叠显示。
解决方案
您可以解决此问题的一种方法是创建并启动一个新活动,该活动将加载您的偏好片段。
例如,如果您创建名为的类SettingsActivity
,它将加载首选项(不要忘记添加到 AndroidManifest):
public class SettingsActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.R.id.content, new PreferenceActivity()).commit();
}
}
然后在您的 中onOptionsItemSelected
,您可以启动设置活动。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
Intent intent = new Intent(this, SettingsActivity.class);
startActivity(intent);
return true;
}
return super.onOptionsItemSelected(item);
}
否则,您需要更改主布局以使用框架布局之类的东西,以便您可以正确添加/删除/替换片段。