如何解决在设置活动中无法关闭
我想在仿真器中关闭switchpreference,但是当我按下时,它保持在“ ON”状态。我放置了一个onchangelistener,因此当发生更改时,可以在另一个类中更改一个值。我也在智能手机上对其进行了测试,但是当我按下它时,它会保持在“打开”位置。这是我用于设置活动的代码
public class SettingsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.settings_activity);
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.settings,new SettingsFragment())
.commit();
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
NavUtils.navigateUpFromSameTask(this);
}
return super.onOptionsItemSelected(item);
}
public static class SettingsFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState,String rootKey) {
setPreferencesFromResource(R.xml.root_preferences,rootKey);
SharedPreferences abcd = PreferenceManager.getDefaultSharedPreferences(getContext());
boolean checkzent = abcd.getBoolean("zentriert",false);
if(checkzent)
{
MapsActivity.zentriertmap = true;
}
else
{
MapsActivity.zentriertmap = false;
}
SwitchPreferenceCompat check = (SwitchPreferenceCompat) findPreference("zentriert");
check.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference,Object obj) {
boolean yes = (boolean) obj;
if(yes)
{
MapsActivity.zentriertmap = true;
}
else
{
MapsActivity.zentriertmap = false;
}
return false;
}
});
}
}
}
这是我的XML文件:
<PreferenceScreen
xmlns:app="http://schemas.android.com/apk/res-auto">
<PreferenceCategory
app:title="Karte">
<SwitchPreferenceCompat
app:key="zentriert"
app:title="Karten Zentrierung"
app:defaultValue="true"
/>
<SeekBarPreference
app:key ="seekbar"
app:defaultValue="16"
app:min="2"
app:title="Karte Zoomlevel" />
</PreferenceCategory>
</PreferenceScreen>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。