views:

290

answers:

4

OK, so I'm playing around with an android app.

The 90% use case is that users want to go straight to the primary list screen to find what they're looking for. That's what I want as my default screen.

The first time a user loads the app however, some configuration is required before their list screen is of any value to them.

So my question, is how I can go about displaying the configuration activity the first time the app is opened up, and then the list screen for future openings.

I also want to put a demo button on the configuration screen, so I suppose more than just detecting that it's the first time, I specifically want to detect whether the user has performed certain configurations within the first screen.

A: 

How will you be storing the configuration?

If it is in SQLlite you could just create a table called firstuse and put a field in there called hasbeenused and make it null. Then when the app is used you can put a 1 in there. Then you can read it each time your app loads and if that field = 1 then go to your next activity.

dweebsonduty
Maybe he doesn't even need the extra field; he could just check to see if the required configuration information is in there and if not, throw up the activity. That seems more extensible anyway.
tloflin
I did try setting it up with shared preferences, however that causes bad behavior of the back button.I looked for some way of manipulating the stack, but it seems to only want to do that for activities of the same type
The Trav
+1  A: 

i like dweebsonduty's method. a similar way to do this is to save their configuration information in files on the SD card. your app could start out by checking for those files and loading the information. if the load is successful, it moves on to the next activity, if not it starts the appropriate activity to prompt the user for input.

I have done this same thing, but instead of swiching activities i just switch views until i have all the info i need, and then move on.

mtmurdock
+1  A: 

After the first time the user has loaded the app you could store the details of whether user has performed the configurations in SharedPreferences.

 protected void storeSharedPrefs(String value) {
        /*
         * Storing in Shared Preferences
         */
        editor.putString("first", value);
        editor.commit();  //Commiting changes
    } 

Check each on time application is loaded, whether its the first time and configuration details has been entered correctly by checking SharedPreferences

private boolean first_time_check() {
        /* 
         * Checking Shared Preferences if the user had pressed 
         * the remember me button last time he logged in
         * */
        String first = uPreferences.getString("first", null);
        if((first == null)){
            return false;
        }
        else 
            return true;
    }
primalpop
A: 

Many applications actually store the current version in SharedPreferences, and check against it for if an update has been installed. Its a clever way of achieving a "what's changed" popup, or making sure that some settings get set (I would be wary of just having a boolean flag because if you ever want to add an additional setting, you will need a second flag and it gets messy after the third, etc.).

Guzba