我有一个onItemCLick
并列出了项目。我有一个Activity
设置,当用户点击第一个列表项时,它会打开一个PreferenceActivity
的新Intent p = new Intent(this, Settings.class);
startActivity(p);
:
PreferenceActivity
当我点击第二个列表项时,它也会打开与第一个列表项中相同的Activity
。因此,如果我对第一个列表项的首选项进行任何更改,我会在单击第二个列表项时看到这些更改。我知道它基本上每次打开相同的putExtra()
。有人可以帮助您如何为每个列表项单击打开不同的首选项活动。
我认为在打开Intent
之前我应该在PreferenceActivity
中使用PreferenceActivity
。但我不知道该放什么以及如何在ERROR_STRING_FOR_RANDOM = "Usage of built-in random generators is not allowed"
methods_to_block = ["rand", "srand", "Random::rand", "Random::srand",
"Random::seed", "Random::new", "Kernel::rand", "Kernel::srand",
"Array::shuffle", "Array::shuffle!", "Array::sample"]
methods_to_block.each do |method|
eval
"""
def #{method}
raise ERROR_STRING_FOR_RANDOM
end
"""
end
中使用它。有人可以请帮助。这甚至是正确的方法吗?
答案 0 :(得分:0)
将警报的标识符发送到PreferenceFragment
,在onCreate()
中检索,并从那里动态创建您的偏好设置。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundle = getIntent().getExtras();
int alarmId = bundle.getString("alarmId");
PreferenceScreen screen = getPreferenceManager().createPreferenceScreen(getActivity());
setPreferenceScreen(screen);
PreferenceCategory category = new PreferenceCategory(screen.getContext());
category.setTitle("Preferences for alarm " + alarmId);
screen.addPreference(category);
//For example create a checkbox preference
CheckBoxPreference checkBoxPref = new CheckBoxPreference(screen.getContext());
checkBoxPref.setKey("checkbox_alarm_" + alarmId);
checkBoxPref.setTitle("Checkbox for alarm " + alarmId);
category.addPreference(checkBoxPref);
}
只是提醒您,如果删除特定警报,您可能还想删除警报的所有共享首选项。