I develop an app for video surveillance. I use preferences to keep cameras settings. In preferences I create main screen with list of cameras, when user click on current item, it opens subscreen with camera name, ip, port etc. When user entered camera settings and clicked back button to return to main screen, I need to check that user entered all necessary data - name, ip, port, usr, pwd and if one of parameters missed, the app will show toast with warning.
The question is, how can I determine that user clicked on back button?
In PreferenceFragment, onBackPressed() and onKeyDown() not work, moreover I think it's not correct use this methods in my case...
http://4pda.ru/forum/dl/post/5659206/Screen-Main.gif - Main screen
http://4pda.ru/forum/dl/post/5659204/Screen-Sub.gif - Subscreen
My code:
public class MyFragments extends PreferenceFragment {
....
@Override
public void onCreate(Bundle savedInstanceState) {
root = getPreferenceManager().createPreferenceScreen(getActivity());
setPreferenceScreen(createMyPrefenceScreen());
}
private PreferenceScreen createMyPrefenceScreen() {
for (int i=1; i<=8; i++) {
PreferenceScreen screen = getPreferenceManager().createPreferenceScreen(getActivity());
screen.setKey("screen_name_" + i);
screen.setTitle("Number " + i);
ip = new EditTextPreference(getActivity());
ip.setKey("ip_" + i);
ip.setTitle("IP ");
screen.addPreference(ip);
ip.setSummary(ip.getText());
....
root.addPreference(screen);
}
return root;
}
...
}