gpt4 book ai didi

android - 关闭 PreferenceFragment

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:34:49 27 4
gpt4 key购买 nike

我又搜索了几个小时,但没有找到我理解/正在寻找的答案。

我有一个首选项屏幕,当用户单击菜单中的设置时它会打开。这行得通。但是,当用户完成设置时,我如何最好地让他关闭此屏幕。

我喜欢 Chrome 中的操作方式,您可以在其中返回到上一屏幕。

其他可能性也很受欢迎。

Activity,降低偏好(它应该返回):

   public class MainActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}

public void startGame(View view)
{
Intent intent = new Intent(this, Game.class);
startActivity(intent);
}

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.layout.game_settings, menu);
return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.action_settings:
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new SettingsFragment())
.commit();
return true;

default:
return super.onOptionsItemSelected(item);
}
}
}

首选项:

   public class SettingsFragment extends PreferenceFragment 
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.layout.preferences);
}
}

XML:

  <?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory android:title="@string/game_settings">
<ListPreference
android:title="@string/circle_setting_title"
android:key="circle_setting"
android:summary="@string/circle_setting_summary"
android:entries="@array/circle_setting_amount"
android:entryValues="@array/circle_setting_amount_value"
android:defaultValue="3"/>
<ListPreference
android:title="@string/color_setting_title"
android:key="color_setting"
android:summary="@string/color_setting_summary"
android:entries="@array/color_setting_amount"
android:entryValues="@array/color_setting_amount_value"
android:defaultValue="3"/>
</PreferenceCategory>
</PreferenceScreen>

最佳答案

接受的答案不正确。通过执行:startActivity(new Intent(this, PrefsActivity.class));,您实际上向堆栈添加了一个新 Activity 。

如果你想返回一个屏幕,你应该使用 onBackPressed 方法。

代码示例如下:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
getActivity().onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}

上述解决方案会将操作栏上的主页按钮设置为与返回按钮 react 相同。这两个按钮都将返回到 Activity 堆栈中的 SettingsActivity(之前的一个 Activity )。

关于android - 关闭 PreferenceFragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21062476/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com