【发布时间】:2018-01-23 13:48:31
【问题描述】:
我是Android开发新手,有一个关于多个开关按钮的问题,如何智能地检索值,并使这些数据可用于其他活动?
目前,我实现了按钮状态的保存和当前活动中找到的信息的检索,如下所示:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
switchButtonOne = findViewById(R.id.switchButtonOne);
switchButtonOne.setChecked(true);
switchButtonTwo = findViewById(R.id.switchButtonTwo);
switchButtonTwo.setChecked(false);
//...... (In total there are 5 switch buttons)
//switchButtonOne
switchButtonOne.setOnCheckedChangeListener((compoundButton, isChecked) -> {
if(isChecked){
stringArrayList.add("1");
}else {
stringArrayList.remove("1");
}
getArray(stringArrayList);
//SAVE
sharedPreferences[0] = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = sharedPreferences[0].edit();
editor.putBoolean("1", switchButtonOne.isChecked());
editor.commit();
});
switchButtonOne.setChecked(sharedPreferences[0].getBoolean("1", false));
//switchButtonTwo
switchButtonTwo.setOnCheckedChangeListener((compoundButton, isChecked) -> {
if(isChecked){
stringArrayList.add("2");
}else {
stringArrayList.remove("2");
}
getArray(stringArrayList);
//SAVE
sharedPreferences[0] = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = sharedPreferences[0].edit();
editor.putBoolean("2", switchButtonTwo.isChecked());
editor.commit();
});
//.......
}
我确信有一种更有效的方法来实现这一点,我很高兴能够获得有效的资源来学习在活动之间提供信息和活动状态的最佳实践。
提前致谢
【问题讨论】:
-
我不明白是什么问题,你能用更好的方式解释你想做什么吗?
-
你好,约翰!我想知道如何使这段代码更小更好。我认为代码太长且重复。我想做的另一件事是保存切换按钮状态并使其可用于其他活动,因为这些按钮将是一个过滤器,稍后将获取一个 json 文件以将结果过滤到其他活动中(这是设置活动)
标签: java android listview android-fragments